Java の Diamond オペレーター
Generics のより単純な使用方法を探している場合は、Java のダイヤモンド オペレーターを調べる必要があります。 ダイアモンド演算子は、この <>
のようになり、主に匿名の内部クラスに使用されます。
Java のこの特別な演算子は、オブジェクトを作成するときに Generics の使用を簡素化するのに役立ちます。 これにより、プログラムの可読性が向上し、プログラム内の未チェックの警告を回避できます。
この記事では、ダイアモンド演算子 <>
の使用方法を見ていき、トピックをより簡単にするために、例と説明を使用してトピックについて説明します。
Java の Diamond オペレーター
diamond 演算子の最も興味深い点は、ジェネリックの型に言及せずにジェネリックのオブジェクトを作成できることです。 以下で共有される一般的な構文は、ひし形演算子を使用してオブジェクトを作成するためのものです。
ClassName<TYPE> MyObj = new ClassName<>();
JDK 7 などの下位バージョンの JDK を実行している場合は、ひし形演算子を使用できないことに注意してください。したがって、この記事のコードを実行するには、JDK をアップグレードする必要があります。
Java での Diamond 演算子の例
以下の例は、Java でダイヤモンド演算子を使用する方法を示しています。 以下のコード例に従ってみましょう。
class UsingDiamond {
// Declaring a generic method
static <T> void DisplayMsg(T data) {
System.out.println("The input string is: " + data);
}
// Our controlling method ( Main method )
public static void main(String[] args) {
// Call a generic method with a String argument
DisplayMsg("This is a string");
}
}
私たちはすでに各行の目的を命じました。 上記のサンプル コードを実行すると、コンソールに次のような出力が表示されます。
The input string is: This is a string
トピックを明確にするために、別の例を見てみましょう。
以下の例では、抽象クラスを作成し、ひし形演算子を使用してそれをメイン クラスにリンクします。 以下の例を見てください。
abstract class AbstractClass<T> { // Declaring a abstract class
abstract T Sum(T num1, T num2); // Declaring a abstract method
}
// Our main class
public class UsingDiamond {
public static void main(String[] args) {
AbstractClass<Integer> obj =
new AbstractClass<>() { // Creating an object for the abstract class
Integer Sum(Integer n1, Integer n2) { // Defining the abstract method
return (n1 + n2);
}
};
Integer result = obj.Sum(30, 20); // Calling the abstract method.
System.out.println("The result is: " + result);
}
}
各コード行の目的については既に説明しました。 上記のサンプル コードを実行すると、コンソールに次のような出力が表示されます。
The result is: 50
ここで共有されているコード例は 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