假设我有:
public interface IFoo{
public void bar();
}
和
public class Foo implements IFoo{
public void bar(){
//bar...
}
}
但是 IFoo 是新的,并且 Foo 是目前唯一实现它的东西。
我想确保其他人不会意外地将其他方法添加到 Foo 中而不将它们也添加到 IFoo 中。
有什么办法可以在java中确保这一点吗?
最佳答案
在程序启动时,使用反射读取类定义,从那里您可以获得类中定义的方法。如果找到其他方法,则抛出异常。
Class aClass = ...//obtain class object
Method[] methods = aClass.getMethods();
另一种方法是使用编译时注释:https://www.javacodegeeks.com/2015/09/java-annotation-processors.html 但有人可以从类代码中删除您的自定义注释。
关于java - 将类的方法限制为接口(interface)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39626507/