[英]Alternative for static generic interface in java
我想要做的是为几个类添加一个通用接口,允许它们调用静态加载方法来使用来自数据库的信息实例化对象。 这应该允许它们在其他泛型类中使用,在我的例子中是“LoadAble”类的ListModel。
问题:
static
方法无法实现接口方法。
您正在寻找的是工厂模式 ,即具有“创建”方法的接口,以及多个实现(工厂)。
如果要将逻辑保持在一起,可以将工厂实现为静态嵌套类:
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();
解决方案是在界面中创建的虚拟对象
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);
我希望这会帮助那些遇到同样问题的人,也许有人可以建议一个更好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.