让我说我有:
public interface IFoo{
public void bar();
}
和
public class Foo implements IFoo{
public void bar(){
//bar...
}
}
但是IFoo是新的,Foo是目前唯一实现它的东西。
我想确保其他人不会在不将其添加到IFoo的情况下意外添加其他方法。
无论如何要在java中确保这个吗?
答案 0 :(得分:1)
在程序启动时,使用反射读取类定义,然后从中可以获得类中定义的方法。如果找到另一种方法,则抛出异常。
Class aClass = ...//obtain class object
Method[] methods = aClass.getMethods();
另一种方法是使用编译时注释:https://www.javacodegeeks.com/2015/09/java-annotation-processors.html 但有人可以从类代码中删除您的自定义注释。