ホームページ > Java > &#&チュートリアル > Java の一般的な問題を解決するための Java ジェネリックスの適用

Java の一般的な問題を解決するための Java ジェネリックスの適用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2024-04-12 22:27:02
オリジナル
476 人が閲覧しました

ジェネリックスは、Java の 2 つの一般的な問題を解決します。 コードの重複: 異なる型のソートされたリストの作成など、データ型ごとに特定のコードを記述する必要がなくなります。柔軟性が不十分: 汎用キューを使用してさまざまな要素を格納および取得するなど、さまざまなデータ型を使用する際の変更にコードが簡単に適応できます。

Java 泛型在解决 Java 中常见问题的應用

Java ジェネリクス: 一般的な問題を解決するための強力なツール

ジェネリクスは Java の強力なツールであり、これを使用すると、さまざまな言語で動作するものを作成できます。データ型 動作するコード。ジェネリックスを使用すると、重複した коде エラーを排除し、柔軟性を高め、коде をより堅牢にすることができます。

問題: 重複したコード

# ジェネリックスを使用しない場合、処理するデータ型ごとに特定のコードを記述する必要があり、その結果、コードが重複し、メンテナンスの負担が増加します。 。たとえば、

IntegerString 型の並べ替えられたリストを作成するには、次の 2 つの別々のメソッドを作成する必要があります。

List<Integer> integerList = new ArrayList<>();
integerList.add(10);
integerList.add(5);
Collections.sort(integerList);

List<String> stringList = new ArrayList<>();
stringList.add("John");
stringList.add("Mary");
Collections.sort(stringList);
ログイン後にコピー

一般的なソリューションのシナリオ:

ジェネリックを使用すると、任意の型のリストを処理するジェネリック メソッドを定義できます。

public static <T extends Comparable<T>> void sortList(List<T> list) {
    Collections.sort(list);
}
ログイン後にコピー

ジェネリック型パラメーター

T リスト内の項目を指定します。 Comparable インターフェイスを実装すると、自然な順序で比較できるようになります。ジェネリック メソッドを使用して、任意の型のリストを並べ替えることができるようになりました。

List<Integer> integerList = new ArrayList<>();
sortList(integerList);

List<String> stringList = new ArrayList<>();
sortList(stringList);
ログイン後にコピー

問題: 柔軟性が不十分です

ジェネリックを使用しないと、コードは必要なものに簡単に適応できません。処理されたさまざまなデータ型のバリエーション。たとえば、

IntegerStringArrayBlockingQueue を使用する必要がある場合は、2 つの別々のキューを作成する必要があります:

ArrayBlockingQueue<Integer> integerQueue = new ArrayBlockingQueue<>(10);
integerQueue.put(10);

ArrayBlockingQueue<String> stringQueue = new ArrayBlockingQueue<>(10);
stringQueue.put("John");
ログイン後にコピー

一般的な解決策:

ジェネリックを使用すると、あらゆる型の要素に対応できるユニバーサル キューを定義できます。

public class GenericQueue<T> {
    private Queue<T> queue;

    public GenericQueue() {
        queue = new ArrayBlockingQueue<>(10);
    }

    public void put(T element) {
        queue.offer(element);
    }

    public T take() {
        return queue.poll();
    }
}
ログイン後にコピー

ジェネリック型パラメーター

T の型を指定します。キュー内の要素。ユニバーサル キューを使用して、あらゆるタイプの要素を保存および取得できるようになりました。

GenericQueue<Integer> integerQueue = new GenericQueue<>();
integerQueue.put(10);
int element = integerQueue.take();

GenericQueue<String> stringQueue = new GenericQueue<>();
stringQueue.put("John");
String element = stringQueue.take();
ログイン後にコピー

利点:

    重複を排除し、柔軟性を向上させます。
  • クラスの再利用性を促進する
  • クラスの安全性を強化し、型不一致エラーを防ぐ
  • ジェネリックスを使用すると、より堅牢で柔軟な Java アプリケーションを作成し、メンテナンスの負担を軽減できます。 。

以上がJava の一般的な問題を解決するための Java ジェネリックスの適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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