Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Lista / Objetos

Uma lista vai sempre retornar um objeto? se sim por quê ?

4 respostas
solução!

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.