ホームページ >Java >&#&チュートリアル >ダイヤモンド演算子による型推論
1.ダイヤモンドオペレーターの紹介
2. JDK 7 より前の宣言例
// Classe genérica com dois tipos class TwoGen<T, V> { T ob1; V ob2; TwoGen(T o1, V o2) { ob1 = o1; ob2 = o2; } } // Criação de uma instância antes do JDK 7 TwoGen<Integer, String> tgOb = new TwoGen<Integer, String>(42, "testing");
欠点: ジェネリック型は宣言とインスタンス作成の両方で繰り返す必要があります。
。 JDK 7 でひし形演算子を使用する
// Criação de uma instância usando o operador losango TwoGen<Integer, String> tgOb = new TwoGen<>(42, "testing");
演算子<>変数宣言 (TwoGen) に基づいて型引数を推論するようにコンパイラーに要求します。
4.一般形式
ジェネリック クラスのインスタンスを作成するための一般的な構文:
nome-classe<lista-arg-tipo> nome-var = new nome-classe<>(lista-arg-cons);
例:
TwoGen<Double, Boolean> example = new TwoGen<>(3.14, true);
5.メソッドでの推論
型推論は、ジェネリック クラスをパラメーターとして受け取るメソッドに対しても機能します。
例:
// Adicionado à classe TwoGen boolean isSame(TwoGen<T, V> o) { return ob1 == o.ob1 && ob2 == o.ob2; } // Chamando o método usando o operador losango if (tgOb.isSame(new TwoGen<>(42, "testing"))) { System.out.println("Same"); }
新しい TwoGen<>(...) パラメータの型は自動的に推測されます。
6. Losango オペレーターの利点
冗長性の削減: 多くの型パラメータを持つジェネリック クラスに特に役立ちます。
読みやすさ: 複雑なステートメントを簡素化します。
7.互換性
ダイヤモンド演算子は、JDK 7 より前の Java バージョンでは機能しません。
古い書籍やコードの例では、ジェネリックスをサポートするすべての Java コンパイラとの互換性を維持するために完全な構文が使用されています。
8.良い実践方法
JDK 7 をサポートするプロジェクトでダイヤモンド演算子を使用すると、コードが最適化され、読みやすくなります。
わかりやすくするために、学習例または従来のプロジェクトでは完全な構文を使用することを推奨します。
以上がダイヤモンド演算子による型推論の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。