Olá galera
Bem, duvida simples, tenho uma Classe, quero obrigar o usuário que queira utilizar algum metodo da minha classe, implementar uma Interface que criei.
Abraços
Olá galera
Bem, duvida simples, tenho uma Classe, quero obrigar o usuário que queira utilizar algum metodo da minha classe, implementar uma Interface que criei.
Abraços
Impossivel…
tu pode é ter uma classe abstrata e delegar os métodos que tu quer que os filhos dela implentem… mas não é o mesmo conceito.
com uma análise de conceito bem detalhada tu pode chegar a uma melhor maneira de fazer isso.
Método 1 - Ameace processar o seu usuário se ele não implementar a tal interface.
Método 2 - Os parâmetros de seus métodos devem aceitar apenas parâmetros que implementam a tal interface. Exemplo:
class Policia {
public void prender (Ladrao l) {
}
}
interface Ladrao {
...;
}
class Bandido implements Ladrao {
}
...
Policia p = new Policia();
p.prender (new Bandido ());
se o usuario que vc está se referindo é o programador, voce pode via reflection resolver isso…
A_Classe_Que_É_Obrigada_a_Implementar_sua_interface.class.getInterfaces();
ai vc vai pegar todas as interfaces que sua classe implementa, ai é só fazer sua verificação.
boa sorte!!
Você pode utilizar o stack trace para saber a classe que chamou o seu método. Não tenho à mão o procedimento, mas acho que a partir dessa informação é possível pesquisar algo a respeito… (Aliás, na revista Mundo Java do mes passado isso é colocado em detalhes).
Tendo em mãos a classe que chamou o método, use Reflection (como foi dito acima) para descobrir se ela implementa sua interface.
Você poderia utilizar AOP e dizer em um aspecto que todas as classes de determinado pacote devem implementar uma interface … ou até mesmo usar regras do PMD para isso