我想要做的就是爲幾個類添加一個通用接口,允許他們調用一個靜態的 load方法來實例化來自數據庫信息的對象。這應該允許它們在其他泛型類中使用,在我的情況下是用於「LoadAble」類的ListModel。java中的靜態通用接口的替代方案
問題:
- 一個人來定義界面中的靜態方法
- 一個不能覆蓋實現類
- 一個具有調用非靜態方法 之前實例化對象的靜態接口中的方法
- 通用類型需要減速才能調用所需的方法。
- 抽象類不支持靜態方法。
我想要做的就是爲幾個類添加一個通用接口,允許他們調用一個靜態的 load方法來實例化來自數據庫信息的對象。這應該允許它們在其他泛型類中使用,在我的情況下是用於「LoadAble」類的ListModel。java中的靜態通用接口的替代方案
問題:
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();
的解決方法是在界面
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);
我希望這將有助於誰的人有同樣的問題,我有叫,也許有人可以提出更好的方法。