簡體   English   中英

如何強制設置類型以創建通用實例?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM