[英]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.