Como obrigar o usuário a implementar uma interface??  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
analyser
JavaEvangelist
[Avatar]

Membro desde: 26/02/2007 09:31:49
Mensagens: 329
Offline

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

Analyser
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

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.



Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

analyser wrote:
Bem, duvida simples, tenho uma Classe, quero obrigar o usuário que queira utilizar algum metodo da minha classe, implementar uma Interface que criei.


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:




[WWW]
mcbarsotti
JavaEvangelist
[Avatar]

Membro desde: 11/05/2006 12:10:38
Mensagens: 329
Offline

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!!

Obs.: O texto acima não é uma verdade soberana, não precisa cortar os pulsos caso não concorde.

[]'s
[MSN]
gomesrod
GUJ Ranger
[Avatar]

Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline

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.

This message was edited 1 time. Last update was at 26/09/2007 10:20:29

dipeloco
JavaChild
[Avatar]

Membro desde: 21/05/2007 12:14:11
Mensagens: 123
Offline

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
[Email]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team