一般的なインスタンスを作成するようにタイプを設定するにはどうすればいいですか?タイプを設定して汎用インスタンスを作成するにはどうすればいいですか?
public class MyClass<T extends MyClass2> { /* ... */ }
public class A extends MyClass2 { /* ... */ }
これに失敗する必要がありますことはできません
MyClass<A> myInstance = new MyClass<A>();
一般的なインスタンスを作成するようにタイプを設定するにはどうすればいいですか?タイプを設定して汎用インスタンスを作成するにはどうすればいいですか?
public class MyClass<T extends MyClass2> { /* ... */ }
public class A extends MyClass2 { /* ... */ }
これに失敗する必要がありますことはできません
MyClass<A> myInstance = new MyClass<A>();
これはJavaでは実行できません。すべての汎用クラスには対応する生タイプがあります。
あなたはしかし、Eclipseを使用してしまった場合、あなたは生タイプのすべての使用のためにコンパイルエラーを生成するためにそれを設定することができます。
ウィンドウ - >設定 - > Javaの/コンパイラ/エラー - >汎用型 - >セット「生の型の使用」から「エラー」。
:
MyClass myInstance = new MyClass();
を、これは動作するはずです。ランタイムチェックが必要な場合は、型を引数として持つ唯一のコンストラクターを用意することをお勧めします。
public MyClass(Class<T> type) {
this.type = type;
}