接口中没有body的静态方法

时间:2017-07-20 15:02:51

标签: java interface

我有一个界面:

public interface Condition {

    boolean check();

    JSONObject toJSON();

    Condition fromJSON();
}

我需要确保,此接口的每个实现都会覆盖 fromJSON 方法,我需要该方法是静态的。有什么方法可以做到吗??

我尝试在界面中将该方法设为静态,但它并不像我想的那样工作。

我也不想把它变成抽象类,因为每个实现都有不同的方法功能。

是否有任何其他方法可以确保每个实现都具有静态方法fromJSON ??

1 个答案:

答案 0 :(得分:0)

简而言之,没有。实际上,接口的目的是让您可以引用在通用单一名称下实现该接口的所有类,并且仍然可以确保特定方法可用。例如,在您的情况下,您可以有一个Condition的数组,然后循环遍历它们,每次调用condition.toJSON()。但是始终从类名访问静态方法。如果您有一个实现名为Condition的{​​{1}}的类,并且您想要从JSON构建RealCondition,那么您需要知道所需的输出对象是RealCondition,因此在通用名称RealConditon下使用fromJSON方法毫无意义。