我想要做的是为几个类添加一个通用接口,允许它们调用 static 加载方法来使用来自数据库的信息实例化对象。这应该允许它们在其他泛型类中使用,在我的例子中是“LoadAble”类的ListModel。
问题:
答案 0 :(得分:2)
static
方法无法实现接口方法。
您正在寻找的是Factory Pattern,即与"创建"的界面。方法和多个实现(工厂)。
如果要将逻辑保持在一起,可以将工厂实现为静态嵌套类:
public interface Factory {
public Object create();
}
public class MyClass {
public static class MyFactory implements Factory {
@Override
public Object create() {
return new MyClass();
}
}
private MyClass() {
}
}
现在你可以使用它了:
Factory factory = new MyClass.MyFactory();
Object obj = factory.create();
答案 1 :(得分:1)
解决方案是在界面
中创建的虚拟对象public interface LoadAble<T> {
public static <T extends LoadAble<T>> LinkedList<T> loadThis(Class<T> c) {
try {
T t = c.newInstance();
return t.loadAll();
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
public LinkedList<T> loadAll();
}
现在可以使用
调用此功能LoadAble.loadThis(LoadAbleClass.class);
我希望这能帮助那些遇到同样问题的人,也许有人可以提出更好的方法。