Minha pergunta no caso se seria possível descobrir qual class está implementando tal interface como base num código abaixo:
public interface InterfaceQualquer {
public void seusMetodosQualquer();
}
public class ClassQualquer implements InterfaceQualquer {
// Aqui é implementado os métodos da interface e
// outras coisas se quiserem....
}
public class OutraClass {
public void decifrandoClass(InterfaceQualquer i){
// Aqui existe uma possibilidade de se descobrir que class que está vindo
// como parametros que implementa InterfaceQualquer????
}
}
[quote=romarcio]Vamos dizer que vc tenha a interface: MyInterface
E a classe Pessoa e a classe Endereco implementam MyInterface.
Então poderia fazer assim:
[code]
public class Teste {
public static void main(String[] args) {
new Teste().decifrandoClass(new Pessoa());
new Teste().decifrandoClass(new Endereco());
}
private void decifrandoClass(MyInterface myInterface) {
if (myInterface instanceof Pessoa) {
System.out.println("Classe Pessoa");
} else if (myInterface instanceof Endereco) {
System.out.println("Classe Endereco");
}
}
}[/code]
[/quote]
Só que aqui no caso usando instanceof vc tem que saber todas as class que implementa… e todas que eu criar uma class nova que implementasse a tal interface teria que está colocando no método que faz o instanceof… =/
Não existe alguma maneira com reflection???.. eu não conseguir achar nada até agora… mas mesmo assim muito obrigado romarcio… alguém tem alguma idéia ae???
Se estiver no eclipse clica no botão direito na interface e depois em “Open Type Hierarchy”. Vai mostrar todas as classes que implementam aquela interface.