Galera to criando um JComboBox genérico, e preciso de uma ajuda, eu queria criar o seguinte.
esse argumento ai X, seria algo que eu deveria substituir aqui, para poder acessar de dentro do objeto o atributo, no caso uma string
como eu faço para passar um Object generico por parametro e acessar dentro dele um atributo generico tbm :o
public void setLista(ArrayList<Object> lista, X Y){
Iterator<Object> itr = lista.iterator();
while(itr.hasNext()){
Object elemento = itr;
this.addItem(elemento.Y);
}
}
Oi douglasjam,
Com generics vc consegue resolver isso facil veja:
/**O Segundo argumento é um vararg(Argumento vairavel), onde vc pode passar nenhum, um ou n argumentos que passe no teste do é um para Object. O ideal é que a *classe que vc esteja passando para ser adicionada na lista Implemente um interface criada por vc para determinar que ela contenha tal método que vc quer, por *exemplo uma interface nomeada IContente com um método sorrir();
*Todos as classes que vc quiser adicionar a sua lista para chamar somente esse método vc devera implementar essa interface e passar o parametro de forma polimorfica
**/
public void setLista(ArrayList<? extends IContente> lista, IContente... objetosCotentes){ // Na lista vc poderá adicionar qualuqer coisa que passe no teste é um para Object e somente subCLasses de Object.
for(IContente contente:objetosCotentes){
System.out.println("Saida: "+contente.sorrir()); //Chamando polimorficamente o método que quero que todos os objetos tenham independente de qual tipo ele seja
}
}
ou vc tb pode caso os objetos sejam somente Strings:
public void setLista(ArrayList<? extends Object> lista, Object... objetos){ // Na lista vc poderá adicionar qualquer coisa que passe no teste é um para Object e somente subClasses de Object.
for(String s:objetos){
System.out.println("Saida: "+s.toString()); //Chamando o método que todos os objetos tem pois são do tipo String
}
}
Espero ter ajudado
Fallow