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