当前位置: 首页 > 知识库问答 >
问题:

接口中无主体静态方法[重复]

邵逸明
2023-03-14

我有一个接口:

public interface Condition {

    boolean check();

    JSONObject toJSON();

    Condition fromJSON();
}

我需要确保,这个接口的每个实现都覆盖来自MJSON的方法,并且我需要该方法是静态的。有什么办法可以做到吗??

我尝试在接口中使该方法静态化,但它并不像我想要的那样工作。

是否有其他方法来确保每个实现都有来自MJSON的静态方法??

共有1个答案

冀翰翮
2023-03-14

简而言之,没有。实际上,接口的目的是让您可以引用所有用一个通用名称实现该接口的类,并确保特定方法可用。例如,在您的例子中,可以有一个condition数组,然后循环遍历它们,每次调用condition.tojson()。但是静态方法总是从类名访问。如果您有一个实现condition的类,名为realcondition,并且希望从JSON构建realcondition,那么您需要已经知道您想要的输出对象realconditon,因此将fromJSON方法设置为泛型名称condition是没有意义的。

 类似资料:
  • 此具有方法 我迷路了...有人能解释一下吗

  • 问题内容: 我们有一个给定的REST接口: 可以根据服务器配置,通过不同的逻辑“计算器”来实现此计算。 现在,我们正在设计每个计算器必须实现的Java接口。该接口将为每个REST服务提供一个方法。 鉴于所有REST(和HTTP)调用都是无状态的,因此每个方法都应该是静态的。但是,您不能在Java接口中定义静态方法。有没有针对这种情况的好的解决方法? 我们可以将这些方法定义为非静态方法,然后仅创建一

  • 问题内容: Java-8允许在接口内部定义静态方法,但仅通过接口名称限制其调用: 9.4:接口可以声明静态方法,这些方法在不引用特定对象的情况下被调用。 例如: 导致错误: 在JLS中,这种禁令经常有一种解释。在这种情况下,我没有发现任何详细信息。因此,我正在寻找对此规则的全面或权威的解释:为什么禁止通过特定的对象引用调用静态方法?它有什么坏处? 问题答案: 相当强烈的共识是,有关类的静态方法也不

  • 我在读有效的Java课本。第一项是关于使用静态工厂方法而不是公共构造函数。我的疑问是,如果我正在指定我如何在中指定静态工厂方法?因为Java不支持内部的静态方法。教材指定了如何创建包含公共静态工厂方法的不可实例化类。但是这些方法如何访问实现类的私有构造函数呢? 教材中说,如果要定义,请创建一个不可实例化的类,并在该类中包含静态工厂方法。但是类中定义的方法如何访问具体实现的私有构造函数 编辑:-以下

  • 问题内容: 我知道一个接口就像一个100%纯的抽象类。因此,它不能包含方法实现。但是,我看到了一个奇怪的代码。有人可以解释吗? 代码段: 编辑: 我的IDE是Intellij Idea 13.1。项目SDK是Java 7 <1.7.0_25>。IDE未显示任何编译器错误。但是,当我在命令行上编译代码时,我收到以下消息。 问题答案: 在 Java 8 中,除了默认方法外,您还可以在接口中定义静态方法

  • 当我注意到现在可以在接口中定义静态和默认方法时,我正在通过接口学习。 请解释两者的区别,如果有一个我们什么时候会使用它的例子,那就好了。界面上有点混乱。