Como obrigar o usuário a implementar uma interface?

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