bom pus essa duvida no java avançado e como não sei como alterar para cá vou por aqui de novo se algum moderador quiser deletar lá fica a vontade.
ai vai ela, na verdade não é uma divuda e sim queria que alguem me explicace.
Bom não entendi direito o por que isto aconteceu.
tenho uma “classeMae” que implementa uma “interface”
classeMae implements interface
e tenho uma “classeFilha” que extende a “classeMae”
e quando dei um getinterfaces() da classeFilha ela não trouxe a “interface” alguém sabe me explicar porque?
pois querendo ou não querendo ele vai implementar a “interface”
bom pus essa duvida no java avançado e como não sei como alterar para cá vou por aqui de novo se algum moderador quiser deletar lá fica a vontade.
ai vai ela, na verdade não é uma divuda e sim queria que alguem me explicace.
Bom não entendi direito o por que isto aconteceu.
tenho uma “classeMae” que implementa uma “interface”
classeMae implements interface
e tenho uma “classeFilha” que extende a “classeMae”
e quando dei um getinterfaces() da classeFilha ela não trouxe a “interface” alguém sabe me explicar porque?
pois querendo ou não querendo ele vai implementar a “interface”
Argh… como assim getInterfaces ? A questão é: Se é implementado por interface, os métodos SÃO publics, se SÃO publics todas as filhas da hierarquia de classes terão acesso A NÃO SER QUE você esteja fazendo algo muito errado!
Se for isso, reveja seu código, senão POSTA ele aqui!
thegoergen
Acho que o problema do amigo ali é com reflexão.
Pelo que entendi o
getClass().getInterfaces();
não retorna a interface que a classe mãe da sua classe implementa…
E eu não sei o porquê, já tive um problema parecido, mas eu fiz a classe filha implementar a interface também
jingle
thegoergen:
Acho que o problema do amigo ali é com reflexão.
Pelo que entendi o
getClass().getInterfaces();
não retorna a interface que a classe mãe da sua classe implementa…
E eu não sei o porquê, já tive um problema parecido, mas eu fiz a classe filha implementar a interface também
eu acabei fazendo do modo do mesmo modo que você fez… mas não era essa minha questão.
queria saber um modo de pegar todas interface que a classe possui até mesmo as que suas “maes” tinham.
GustavoLaguna
A ClasseFilha irá ter os membros da interface implementada pela ClasseMãe, passando pelo teste IS-A. Acredito que o getInterfaces() que voce está utilizando deve pegar apenas as interfaces que ele implementa diretamente mesmo.
jingle
e qual seria o método simples de pegar não somente os implementado diretamente?
dipeloco
fazendo
Teste t = new Teste();
Class t2;
while((t2 = t.getClass().getSuperclass()) != Object.class){
t2.getInterfaces();
/*FAZ AKI*/
}
Andre_Brito
Nunca lidei com isso, mas não daria pra fazer
super.getInterfaces();
?
dipeloco,
Por que != de Object.class?
Não consegui entender
Abraço.
Paulo_Silveira
porque Object nao implementa nenhuma interface, mas voce poderia trocar isso ai por != null, ia dar na mesma, e precisa de alguma condicao de parada do laco.
A unica coisa é que o getInterfaces so retorna os que a pessoa explicatamente definiu na classe, mas isso nao quer dizer que ela nao implemente outras por transitividade.
thegoergen
Paulo Silveira:
dedejava:
Por que != de Object.class?
Não consegui entender
porque Object nao implementa nenhuma interface, mas voce poderia trocar isso ai por != null, ia dar na mesma, e precisa de alguma condicao de parada do laco.
A unica coisa é que o getInterfaces so retorna os que a pessoa explicitamente definiu na classe, mas isso nao quer dizer que ela nao implemente outras por transitividade.
E não existre nenhum método que retorne todas elas, até as implementadas por transitividade?
Precisa fazer como o dipeloco disse??