Galera estou com problemas para acessar elementos de um array Object quando insiro no array objetos de outro tipo, segue o código:
class Dog {
public String nome;
Dog(String nome){
this.nome = nome;
}
}
public class ConverterArrayList {
public static void main(String[] args) {
List<Dog> listaDogs = new ArrayList<Dog>();
Dog dg = new Dog("dog");
Dog dg1 = new Dog("dog1");
Dog dg2 = new Dog("dog2");
Object[] teste = new Dog[2];
teste[0] = dg;
teste[1] = dg1;
System.out.println(teste[0].nome);
Quando tento dar o println ocorre erro quando tento acessar o atributo, tentei fazer o casting tb (Dog) mas nao rola…
Assim funciona.System.out.println(((Dog)teste[0]).nome); No seu código não entendi o porque o ArrayList, mas acredito que o código não está completo.
Outro detalhe, seu código é apenas para teste certo? pois não é uma boa pratica deixar atributos como public, caso não saiba porque, pesquise no google sobre encapsulamento.
Amigo, tentei fazer o cast exatamente como você disse…ah o ArrayList e o encapsulamento desconsidere, eu sei do que se tratam, estou somente testando
Saca só o erro:
cannot find symbol
symbol: variable nome
location: class java.lang.Object
Não encontra a variável nome na classe Object, obviamente nao vai encontrar pois nome faz parte de Dog…