[英]How to force set the type to create a generic instance?
如何強制設置類型以創建通用實例?
public class MyClass<T extends MyClass2> { /* ... */ }
public class A extends MyClass2 { /* ... */ }
這應該失敗:
MyClass myInstance = new MyClass();
這應該工作:
MyClass<A> myInstance = new MyClass<A>();
您無法在Java中做到這一點。 所有通用類都有對應的原始類型 。
但是,如果碰巧使用了Eclipse,則可以將其設置為對原始類型的所有使用產生編譯錯誤:
窗口->首選項-> Java /編譯器/錯誤->通用類型->將“原始類型的使用”設置為錯誤。
那不可能 如果要運行時檢查,最好的選擇是提供一個唯一的構造函數,該構造函數將類型作為參數。
public MyClass(Class<T> type) {
this.type = type;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.