ホームページ > Java > &#&チュートリアル > Java ジェネリックスで `` を使用する場合とその理由?

Java ジェネリックスで `` を使用する場合とその理由?

Barbara Streisand
リリース: 2024-11-27 16:00:14
オリジナル
982 人が閲覧しました

When and Why Use `` in Java Generics?

Java のジェネリック: いつ使用するか、どのように使用するか

Java では、ジェネリックを使用すると、開発者はジェネリックを使用することで、さまざまなデータ型を操作するコードを作成できます。同じコードの複数のバージョンを作成します。ジェネリックを使用する場合、 の使用との違いを理解することが重要です。

使用する場合

構文 は、

Map<String, Class<? extends Serializable>> expected = null; を使用する場合に使用します。ジェネリック型パラメーターが、指定された型の任意のサブタイプになり得ることを示します。たとえば、以下のコードでは:</h3>
<p></p>
<h3>予期されるマップは、Serializable またはそのサブクラスを実装するクラスを表す Class オブジェクトを保持できます。</h3>
<p>なぜ <T> が実行されるのか。コンパイル エラーが原因ですか?</p>
<pre class="brush:php;toolbar:false">Map<String, Class<java.util.Date>> result = null;
assertThat(result, is(expected));
ログイン後にコピー
この例では:

結果マップは、Date クラス オブジェクトのみを保持できることを指定します。結果の型をチェックするとき、assertThat メソッドは結果の型に適合する Matcher を期待します。ただし、予期されるマップの型 (Matcher) は、予期される型 Map>

への切り替えの欠点

    assertThat メソッド シグネチャを に変更します。次のような予期せぬ結果が生じる可能性があります。
  • Matcher を使用する既存のコードとの互換性が失われる。
無効な一致が発生する可能性があります。

assertThat メソッドのジェネリック化

JUnit でのassertThat メソッドのジェネリック化は、互換性のある Matcher が確実に提供されるように設計されています。が提供されます。ただし、Matcher クラスはジェネリック型を必要としないため、ジェネリック化が冗長に見える可能性があります。ただし、Matcher がテスト対象の結果の実際の型を処理できることを保証することにより、型安全性が提供されます。

以上がJava ジェネリックスで `` を使用する場合とその理由?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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