ホームページ > Java > &#&チュートリアル > Javaでクラスパラメータを使用してジェネリック型をインスタンス化するにはどうすればよいですか?

Javaでクラスパラメータを使用してジェネリック型をインスタンス化するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-24 08:43:12
オリジナル
572 人が閲覧しました

How to Instantiate a Generic Type in Java with a Class Parameter?

クラス パラメーターを使用して Java でジェネリック型をインスタンス化する

Java のジェネリックスは、さまざまなオブジェクトで動作するクラスとメソッドを定義する便利な方法を提供します。データ型。ただし、ジェネリック型のオブジェクトのインスタンス化は少し難しい場合があります。

次のようなクラス宣言があるとします。

public class Abc<T> {
    public T getInstanceOfT() {
        // I want to create an instance of T and return the same.
    }
}
ログイン後にコピー

どのようにして型 T のオブジェクトを作成できますか? getInstanceOfT method?

解決策:

ジェネリック型をインスタンス化する鍵は、実際の型を引数としてジェネリック クラスに渡すことです。これは、Class を使用して行うことができます。 type パラメータ:

public class Abc<T> {
    public T getInstanceOfT(Class<T> aClass) {
        return aClass.newInstance();
    }
}
ログイン後にコピー

この変更されたコードでは、getInstanceOfT メソッドは、作成されるオブジェクトの実際の型を表す Class 型の引数を受け入れます。次に、Class オブジェクトの newInstance() メソッドは、その型のインスタンスを作成して返します。

例外処理:

が必要になることに注意することが重要です。 newInstance() は InstantiationException をスローする可能性があるため、コードに例外処理を追加するか、 IllegalAccessException.

Runtime Type:

T の型はコンパイル時には不明であるため、実際の型を引数として渡すことが必要です。コンパイル後のバイト コードには実際の型に関する情報が含まれないため、実行時に明示的に指定する必要があります。

以上がJavaでクラスパラメータを使用してジェネリック型をインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート