使用注释强制方法实现

时间:2015-11-16 10:43:21

标签: java interface annotations

好吧,这可能是一个愚蠢的问题,但我必须确定...我有一个类,我需要使用自定义注释进行注释。此外,该类必须实现自定义接口。现在的问题是:有什么方法可以只是注释类,然后使用注释,就像一个接口,例如强制方法实现?我认为这是不可能的,但也许有办法......谢谢。

2 个答案:

答案 0 :(得分:2)

是和否。你可以,例如。编写注释处理器,检查是否已实现特定方法。在运行时,如果您没有实现接口,则必须使用反射检查注释和方法。但这实际上是大多数现代框架的工作方式(不要强迫你实现/扩展某些特定的接口/类)。

答案 1 :(得分:1)

不,因为注释用于描述某些元信息,并且编译器不会使用它们来定义类类型(如您所知,java是强类型语言)。

主要问题将在下一个案例中:

public interface Hello{
  public void sayHello();
}

@Hello
public class HelloImpl{
  ... 
}

public class HelloService{
  public void perform (Hello hello) {}
}

因此,如果你的HelloImpl不会实现Hello接口,那么在java中就无法在HelloService中传递HelloImpl