java - 注释来解决接口(interface)未实现方法的所有错误?

标签 java interface annotations

我有一个界面,有 20 多个方法,但只有少数对我的需要有意义。我已经实现了所需的方法。

我不想将代码编写为空正文。有没有任何注释或任何方法可以绕过这个并避免编写空白正文?

谢谢。 普拉文

最佳答案

一种选择是让每个未实现的方法抛出UnsupportedOperationException。这就是 Collections.unmodifyingList() 所做的事情,以便它可以返回 List 但您不能对其使用 add()

例如:

@Override
public void notNeeded() {
    throw new UnsupportedOperationException();
}

另一个选择是考虑实现这样的接口(interface)是否真的有意义。相反,您可以创建一个更小、更专业的界面,更适合您的用例。如果您可以修改当前接口(interface),请使其扩展新接口(interface),这样就不会收到重复的代码。

例如,假设您有 BigInterface,它声明了一些您​​不想在类 MyClass 中实现的方法:

interface BigInterface {
    void notNeeded();
    int alsoNotNeeded();

    boolean neededMethod();
}

您可以仅提取所需的方法并创建一个新接口(interface):

interface SmallInterface {
    boolean neededMethod();
}

然后使 BigInterface 扩展 SmallInterface,以便那些实现 BigInterface 的类继续正常工作:

interface BigInterface extends SmallInterface {
    void notNeeded();
    int alsoNotNeeded();
}

并让 MyClass 仅实现 SmallInterface:

class MyClass implements SmallInterface {
    @Override
    public boolean neededMethod() {
        return true;
    }
}

关于java - 注释来解决接口(interface)未实现方法的所有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29453753/

相关文章:

javascript - 如何重写不提供签名匹配的通用构造函数的定义

java - hibernate列名问题

Java自定义警告

kubernetes - 如何在同一个命名空间中部署多个大使守护进程 - kubernetes

java - 使用 IcyStreamMeta 从 SHOUTcast 获取元数据

java - 如何在 java 中创建一个真正的单例?

java - Tomcat 无效的 lib 目录

java - 如何将对象类型作为参数传递给构造函数并将变量转换为它(JAVA)?

java - 基于访问器方法强制执行严格继承

python - 使用 tkinter,python 将输入数据显示到文本框中时出现问题