Uma lista vai sempre retornar um objeto? se sim por quê ?
Uma lista vai sempre retornar um objeto? se sim por quê ?
Boa noite Henry.
Sim uma lista sempre retorna um Object, pois um List trabalha sempre vai armazenar objetos, que são instancias de classes e todas as classes herdam de Object, tanto as nativas do Java quanto as criadas pelo programador, exemplo:
ArrayList<Aluno> lista = new ArrayList();
ArrayList<String> lista = new ArrayList();
ArrayList<Integer> lista = new ArrayList();
ArrayList<BigDecimal> lista = new ArrayList();
ArrayList<Cachorro> lista = new ArrayList();
todos as Classes herdam de Object, mesmo as classes nativas de java, quando vc tem um relacionamento de herança "extends" dizemos q a classe q a herdou é a classe herdada, exemplo:
//funcionário é uma pessoa
Public class Funcionario extends Pessoa {}
//herança implicita de Object
Public class Automovel {}
//carro é um automóvel, que é um Object por herança implicita, logo Carro alem de ser um automóvel tb é um Object
Public class Carro extends Automovel{}
//erança implicita de Object
Public class Produto{}
porem a herança de Object é implícita, assim como o construtor padrão das classes no Java vc não precisa declara-lo.
O List aceita apenas Objetos, por isso não aceita os tipos primitivo, logo não é possível declarar o List com tipos primitivos, o código a baixo não compila por exemplo:
ArrayList<int> lista = new ArrayList();
T++
Boa noite Allan! Entendi, porém uma outra dúvida surgiu, quando faço um for
for (Object c : lista) {
System.out.println(c);
}
Compila normalmente mas se tento substituir Object por Conta ( que também é um Object) não compila mesmo que tente fazer um cast de lista para Conta Por que???
Boa noite, Henry. Nesse caso é uma sintaxe especial do for para percorrer listas, por isso, ela funciona dessa forma que você escreveu.
Obrigado Karen, já consegui resolver faltava colocar os Generics na lista.