Eu tenho uma classe A, diagmos assim, que herda de várias outras e implementa indiretamente a interface X. Nessa classe eu chamo um método que aceita como argumento um objeto Y, só que Y é uma outra interface, a qual a interface X extende. Porém o Eclipse me dá um erro dizendo que tal método que aceita como parâmetro um objeto da interface Y não é aplicável para os argumentos da classe A. Qual é o erro?
Eu decidi fazer uma hierarquia como essa, pois pensei que não havia problema
-> Como determinada classe (AA) implementa a interface X, ela é uma X
-> Como a interface X extende a Y, isso quer dizer que a classe acima citada, indiretamente ela também é uma Y
-> Como a minha classe é uma subclasse indireta de AA, ela é X e ela é Y
-> Dessa forma o método que eu chamo que aceita como parâmetro um objeto, o qual deve implementar Y, ele não deveria dar tal erro
public class A extends AA {
public void testa(Y y) {
}
}
class AA implements X {
public void come() {
}
public void dorme() {
}
}
interface Y {
void come();
}
interface X extends Y {
void dorme();
}
Sim caduEngenheiro, é parecido com isto.
A única coisa é que agora não vou postar o código, mas tão logo postar no flicker as imagens eu dou uma atualizada aqui.
A única diferença da aplicação real para esta é que na real o método testa que esta aí seria um método estático de uma outra classe.
Por incrível que pareça deve ser um bug do Eclipse.
Quando eu abri de novo o arquivo que ele dizia que estava com erro eu só mudei o que iria ser impresso
na tela numJOptionPane e quando apertei salvar, ele não registrou mais nenhum erro. Os que haviam tinham desaparecido. E olha que o erro que ele apontava anteriormente era na hierarquia bem como o caduEngenheiro entendeu.