Java のジェネリック
クラスのオブジェクトの一般的な型を宣言する場合、型の安全性を提供するための機能は含まれていません。 ただし、ジェネリックを使用して、この安全機能をオブジェクトに簡単に追加できます。
Java で使用できるジェネリックには 2 種類あります。1つ目はジェネリック メソッドで、2つ目はジェネリック クラスです。
ジェネリック メソッドを使用すると、型パラメーターが含まれ、実際の型がこれらのパラメーターを引用するため、より一般的な方法でメソッドを使用できます。
一方、ジェネリック クラスは、ほとんど非ジェネリック クラスに似ています。
ただし、唯一の違いは、型パラメーターのセクションがあることです。 さらに、複数のパラメータを使用できます。
この記事では、Java のジェネリックについて説明します。 また、ジェネリックを示す例を使用してトピックについて説明し、これらのコードを部分的に説明します。
Generics
が Java で型を保証する方法
Generics
クラスがどのようにプログラムの型を保証するかについて説明しましょう。 プログラムを作成してコンパイルしようとすると、Generic
クラスは、コンパイル中に型の誤用が発生したかどうかをチェックします。
互換性のない型が見つかった場合、エラーが表示され、コンパイルは失敗します。
Java のジェネリック メソッドを使用した例
以下の例では、ジェネリック メソッドの実装を確認します。 コードは次のようになります。
class GenericMethod {
// Declaring a generic method
static <T> void MyDisplay(T data) {
System.out.println("Your input is: " + data);
}
// Our controlling method ( Main method )
public static void main(String[] args) {
// Calling a generic method with an Integer argument
MyDisplay(17);
// Calling a generic method with a String argument
MyDisplay("This is a string");
// Calling a generic method with a double argument
MyDisplay(16.0);
}
}
上記の例の各行の目的については、既にコメントしました。 上記のコード例を実行すると、以下のような出力が得られます。
Your input is: 17
Your input is: This is a string
Your input is: 16.0
Java のジェネリック クラスの例
以下の例では、ジェネリック クラスの実装を確認します。 ここで、ジェネリック クラスの名前は <T>
型の GenericClass
です。
コードは次のようになります。
class GenericClass<T> {
// Declaring a "T" type object
T MyObj;
GenericClass(T MyObj) {
this.MyObj = MyObj;
} // Creating a constructor
public T getObject() {
return this.MyObj;
}
}
// Our controlling method ( Main method )
class Main {
public static void main(String[] args) {
// Declaring an instance of Integer type
GenericClass<Integer> IntObj = new GenericClass<Integer>(19);
System.out.println("The number is: " + IntObj.getObject());
// Declaring an instance of String type
GenericClass<String> StrObj = new GenericClass<String>("This is a string.");
System.out.println(StrObj.getObject());
}
}
上記の例の各行の目的については、既にコメントしました。 上記のコード例を実行すると、以下のような出力が得られます。
The number is: 19
This is a string.
ここで重要なのは、パラメーターの型として、int
、char
、float
、または double
などのプリミティブを使用できないことです。
ここで共有されているコード例は Java であり、システムに Java が含まれていない場合は、環境に Java をインストールする必要があることに注意してください。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn