Pessoal, eu tenho as seguintes classes
Uma classe abstrata
[code]
import java.lang.reflect.Field;
public abstract class ClasseAbstrata {
public abstract void metodo1();
public void metodo2() {
try {
Class cls = Class.forName(this.getClass().getName());
Field fieldlist[] = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
if (fld.getType() == this.getClass()) {
//TODO como chamar o método "metodo1" da instância concreta2 que é do tipo ClasseAbstrata
}
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}[/code]
Uma classe concreta que herda da abstrata
public class ClasseConcreta1 extends ClasseAbstrata{
private List<ClasseConcreta2> concreta2 = new ArrayList<>();
private String valor1;
@Override
public void metodo1() {
metodo2();
}
public List<ClasseConcreta2> getConcreta2() {
return concreta2;
}
public void setConcreta2(List<ClasseConcreta2> concreta2) {
this.concreta2 = concreta2;
}
public String getValor1() {
return valor1;
}
public void setValor1(String valor1) {
this.valor1 = valor1;
}
}
Outra classe concreta que herda da abastraca
public class ClasseConcreta2 extends ClasseAbstrata {
@Override
public void metodo1() {
metodo2();
}
}
Eu gostaria de quando executar o método “metodo1” da classe Concreta1 que chama o método “metodo2” da classe pai, nesse método 2 eu gostaria de varrer todos os atributos que são do tipo “ClasseAbstrata” e achando e o mesmo estando instanciado executar o método “metodo1” da instância, no caso acima seria para executar o método “metodo1” da instância concreta2 da classe “Concreta1”.
O pessoal nível advanced dá um HELP! srsrsrrs