java - 将类的方法限制为接口(interface)的方法

标签 java oop

假设我有:

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/

相关文章:

java - 如果只有一个编写器线程,我们是否需要同步 java HashMap gets

javascript - JS模块模式-为什么私有(private)变量没有被删除

c# - 具体 C# 类中是否需要可序列化属性?

java - 写入一个已经存在的文件

java - Linux 环境下如何对值进行四舍五入?

Java判断字符串中的字符是否在给定范围内

java - 组合与减少耦合?

javascript - 如何创建特权 JS 方法?

java - 面向对象编程父子类

java - 一段代码的后置条件