将类的方法限制为仅限于接口的方法

时间:2016-09-21 21:00:29

标签: java oop

让我说我有:

public interface IFoo{
    public void bar();
}

public class Foo implements IFoo{
    public void bar(){
        //bar...
    }
} 

但是IFoo是新的,Foo是目前唯一实现它的东西。

我想确保其他人不会在不将其添加到IFoo的情况下意外添加其他方法。

无论如何要在java中确保这个吗?

1 个答案:

答案 0 :(得分:1)

在程序启动时,使用反射读取类定义,然后从中可以获得类中定义的方法。如果找到另一种方法,则抛出异常。

Class aClass = ...//obtain class object
Method[] methods = aClass.getMethods();

另一种方法是使用编译时注释:https://www.javacodegeeks.com/2015/09/java-annotation-processors.html 但有人可以从类代码中删除您的自定义注释。