【发布时间】:2021-05-14 19:57:12
【问题描述】:
我有一个抽象单例类,我希望它有一个代表单例实例的instance 字段。我试过这样做:
public abstract class AbstractClass {
private static AbstractClass instance;
public static AbstractClass getInstance() {
return instance == null ? this.getClass().newInstance() : instance;
}
}
我希望它起作用,以便当我从 AbstractClass 的子类调用它时,它返回该子类的实例,而不是 AbstractClass 的实例,这就是为什么我尝试使用 this#getClass() 而不仅仅是 @ 987654326@。这当然会给我一个错误,指出“不能在静态上下文中使用它”。有没有办法在超类的静态方法中生成子类的新实例?
【问题讨论】:
-
我不这么认为。
标签: java inheritance abstract-class