Java の汎用メソッドとワイルドカードの使用の違いは何ですか?
ジェネリック メソッドには、操作可能なデータ型を指定する型パラメーターがあります。ワイルドカードは不明な型を表し、上位のワイルドカードはその型が特定の型のサブクラスまたはそれ自体であることを指定し、下位のワイルドカードはその型が親クラスまたはそれ自体であることを指定します。
#Java ジェネリック メソッドとワイルドカードの違い
はじめに
Generics Itは、開発者がデータ型の非互換性を心配することなく再利用可能なコードを作成できる Java の強力なツールです。ジェネリック メソッドとワイルドカードは、ジェネリックの機能をさらに強化する 2 つのメカニズムです。この記事では、それらの違いを説明し、実際の例を通してそれらの使用方法を示します。ジェネリック メソッド
ジェネリック メソッドは、型パラメーターを持つメソッドです。型パラメーターは、メソッドが使用できるデータ型を指定します。たとえば、次のジェネリック メソッドは、任意の型のリストを操作できます:public static <T> void printList(List<T> list) { for (T item : list) { System.out.print(item + " "); } System.out.println(); }
List<String> names = new ArrayList<>(); names.add("John"); names.add("Mary"); printList(names); // 输出:John Mary
Wildcards
ワイルドカードは、未知の型を表すために使用される特別な構文です。これらは、ジェネリックの上限または下限を作成するためによく使用されます。- 上限ワイルドカード (? は T を拡張) 不明な型が T 型のサブクラス、または T 自体であることを示します。
- 下限ワイルドカード (? super T) 不明な型が T 型の親クラス、または T 自体であることを示します。
public static <T> List<Class<?>> getSuperclasses(List<? extends T> list) { List<Class<?>> superclasses = new ArrayList<>(); for (T item : list) { superclasses.add(item.getClass().getSuperclass()); } return superclasses; }
実用的なケース
次のケースを考えてみましょう。Animal インターフェイスを実装する Animal クラスがあり、動物のリストを出力するメソッドが必要です。 #汎用メソッドあらゆる種類の動物を印刷するための汎用メソッドを作成できます:
public static <T extends Animal> void printAnimals(List<T> animals) { for (T animal : animals) { System.out.println(animal.getName()); } }
ワイルドカードを使用して、Animal のサブクラスを表すこともできます。
public static void printAnimals(List<? extends Animal> animals) { // 使用上限通配符 for (Animal animal : animals) { // 使用上限通配符 System.out.println(animal.getName()); } }
どちらの場合も、単一のメソッドを使用して、さまざまな種類の動物のリストを出力できます。ただし、ジェネリック メソッドは、型パラメータに Animal インターフェイスの継承を強制するため、型安全性を提供しますが、ワイルドカードはこの保証を提供しません。
以上がJava の汎用メソッドとワイルドカードの使用の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。
