Java でのジェネリック型のインスタンス化は単純そうに見えますが、基礎となるメカニズムは驚くほど微妙な場合があります。この記事では、Java のジェネリック システムの複雑さを掘り下げて、ジェネリック型のオブジェクトをインスタンス化する手法について詳しく説明します。
次のようなジェネリック クラス宣言があるとします。
public class Abc<T> { public T getInstanceOfT() { // Instantiate an instance of T and return it. } }
オブジェクトをインスタンス化するには型 T の場合、型情報は実行時に明示的に指定する必要があります。これは、Class オブジェクトを使用して実現されます:
public class Abc<T> { public T getInstanceOfT(Class<T> aClass) { return aClass.newInstance(); } }
このメソッドを呼び出すときは、実際の型パラメータを指定する必要があります:
Abc<String> abc = new Abc<>(); String instance = abc.getInstanceOfT(String.class);
潜在的なインスタンス化の失敗を管理するには例外処理が必要であることに注意してください。 .
ジェネリック型は呼び出し元のコードに基づいて動的に変更できるため、このアプローチにより実行時のインスタンス化が柔軟になります。
以上がJava でジェネリック型をインスタンス化する方法: ランタイム型の特異性に関するガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。