ホームページ > Java > &#&はじめる > Java ジェネリックの詳細な紹介

Java ジェネリックの詳細な紹介

王林
リリース: 2019-11-27 16:30:49
転載
1963 人が閲覧しました

Java ジェネリックの詳細な紹介

Java ジェネリクス

ジェネリクスは、コンパイル時の型安全性検出メカニズムを提供し、プログラマが不正な型を検出できるようにします。ジェネリックスの本質はパラメーター化された型です。これは、操作対象のデータ型がパラメーターとして指定されることを意味します。

たとえば、整数配列、文字列配列、またはその他のタイプの配列をソートできるソート メソッドを作成したい場合は、Java ジェネリックスを使用できます。

無料のオンライン学習ビデオの推奨: java オンライン ビデオ

1. 汎用メソッド

汎用メソッドを作成できます。呼び出されたときにさまざまなタイプのパラメータを受け取ることができます。ジェネリック メソッドに渡されるパラメーターの型に応じて、コンパイラーは各メソッド呼び出しを適切に処理します。

例:

public static < E > void printArray( E[] inputArray ){
	for ( E element : inputArray ){
		System.out.printf( "%s ", element );
	}
}
ログイン後にコピー

汎用境界

(1) は、ワイルドカードで表される型が次の型であることを示します。 T サブクラス。

(2) は、ワイルドカードで表される型が T 型の親クラスであることを示します。

2. ジェネリック クラス

ジェネリック クラスの宣言は、型パラメーター宣言部分が後に追加されることを除いて、非ジェネリック クラスの宣言と似ています。クラス名。ジェネリック メソッドと同様に、ジェネリック クラスの型パラメーター宣言部分にも、コンマで区切られた 1 つ以上の型パラメーターが含まれます。

型変数とも呼ばれるジェネリック パラメーターは、ジェネリック型の名前を指定するために使用される識別子です。これらのクラスは 1 つ以上のパラメーターを受け入れるため、パラメーター化されたクラスまたはパラメーター化された型と呼ばれます。

例:

public class Box<T> {
private T t;
public void add(T t) {
this.t = t;
}
public T get() {
return t;
}
}
ログイン後にコピー

3. ワイルドカードを入力しますか?

ワイルドカードを入力するには、通常、特定の型パラメータの代わりに ? を使用します。たとえば、List は、論理的には List、List、およびすべての List<具体的な型の実パラメータ> の親クラスです。

4. 型消去

Java のジェネリックスは、基本的にコンパイラ レベルで実装されます。ジェネリックスの型情報は、生成される Java バイト コードには含まれません。ジェネリックスの使用時に追加された型パラメーターは、コンパイル中にコンパイラーによって削除されます。このプロセスは型の消去と呼ばれます。

コード内で定義された List や List などの型は、コンパイル後に List になります。 JVM が認識できるのはリストだけであり、ジェネリックによって付加された型情報は JVM には見えません。

型消去の基本プロセスも比較的単純で、最初のステップは、型パラメーターの置換に使用される特定のクラスを見つけることです。この具象クラスは通常、Object です。型パラメータの上限が指定されている場合は、この上限が使用されます。コード内のすべての型パラメータを特定のクラスに置き換えます。

Java 関連記事チュートリアル: Java 言語の概要

以上がJava ジェネリックの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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