我有一个界面:
public interface Condition {
boolean check();
JSONObject toJSON();
Condition fromJSON();
}
我需要确保,此接口的每个实现都会覆盖 fromJSON 方法,我需要该方法是静态的。有什么方法可以做到吗??
我尝试在界面中将该方法设为静态,但它并不像我想的那样工作。
我也不想把它变成抽象类,因为每个实现都有不同的方法功能。
是否有任何其他方法可以确保每个实现都具有静态方法fromJSON ??
答案 0 :(得分:0)
简而言之,没有。实际上,接口的目的是让您可以引用在通用单一名称下实现该接口的所有类,并且仍然可以确保特定方法可用。例如,在您的情况下,您可以有一个Condition
的数组,然后循环遍历它们,每次调用condition.toJSON()
。但是始终从类名访问静态方法。如果您有一个实现名为Condition
的{{1}}的类,并且您想要从JSON构建RealCondition
,那么您需要知道所需的输出对象是RealCondition
,因此在通用名称RealConditon
下使用fromJSON方法毫无意义。