我希望实现接口的每个类都有一个静态工厂方法,由接口定义。即:
public interface Handle {
public static Handle GetHandle() {
return null;
}
public void DoThings();
}
public class HandleA implements Handle {
private HandleA();
public static HandleA GetHandle() {
return new HandleA();
}
public void DoThings() {
return;
}
}
// This is allowed even though HandleB doesn't provide a GetHandle()
public class HandleB implements Handle {
private HandleB();
public void DoThings() {
return;
}
}
阅读过去的问题,似乎静态方法GetHandle()并未在Handle的具体类中强制执行,因为这不是静态接口方法的预期设计行为。还有另一种方法可以做我想要的吗? (即强制执行Handle的所有实现以提供"工厂" GetHandle()方法)。
答案 0 :(得分:0)
你不能强制一个类在Java中使用静态方法。