初心者向けの Java ジェネリックス関連の概念

Java ジェネリック:

ジェネリックを使用する理由:

ジェネリックが Java に追加される前は、ジェネリック プログラミングは継承を使用して実装されていました。実際、コレクションに追加されるすべてのオブジェクトは Object クラスのオブジェクトでした。しかし、これを行うにはまだいくつかの欠点があります。
欠点:
1. 強制的な型変換が必要です (例: オブジェクト型を文字列型または他の型に変換する)。
2. 任意のタイプのオブジェクトをコレクションに追加できますが、これには危険が伴います。(例:Catオブジェクトを強制的にString型に変換した場合、コンパイル段階ではエラーにならなくても、実行段階では実行時例外が発生するため、このような結果には一定のリスクがあります。)
注:これらの問題の一部は、ジェネリックを使用することで解決できます。

ジェネリックスの正しい使用法:
List <String> list = new ArrayList<String>();

コレクションオブジェクトを定義する場合は、ジェネリック型を<>のペアで記述します。たとえば、上でListオブジェクトを定義し、List<>に文字列を記述します。Listには文字列の内容のみを追加できます。そしてArrayListクラスの最後にも<>を入れてStringを書く必要があります。

もちろん、Java SE7 以降のバージョンでは、コンストラクターでジェネリック型を省略できます。(以下のコード)

List <String> list = new ArrayList<>();//此时ArrayList的<>里什么都不用写

ポリモーフィズムとジェネリック:

関連するコードは次のとおりです。

//定义一个Animal类
class Animal{
    
    }
//定义一个Cat类继承Animal类
class Cat extends Animal{
    
    }
//第三行代码这里Animal是父类,Cat是子类。这是错误的写法!是不允许的!)
List <Animal> list = new ArrayList <Cat>();

注: 正しい書き方は、変数宣言の型が渡される実際のオブジェクトの型と一致する必要があるため、山かっこは一貫している必要があります。

その他の間違った書き方(下記):
//1、
List <Object> list = new ArrayList<String>();
//2、
List <Number> numbers = new ArrayList<Integer>();

おすすめ

転載: blog.csdn.net/Turniper/article/details/124071479