私はJava チュートリアルを進めており、JDK7 でのジェネリック型推論について読んでいます。
次の構文に出くわしました...
class MyClass<X> {
<T> MyClass(T t) {
// ...
}
}
MyClass<Integer> myObject = new <String`> MyClass<>("");
…ちょっとややこしいですね。「ダイヤモンド」演算子と、コンテキストに基づいてジェネリック型を推論する方法を理解しています。
タイプ「String`」も明示的に指定しながら、ダイヤモンド演算子を使用してコンストラクターに渡されたタイプを推測する理由がわかりませんか? また、バックティックが関係している理由もわかりません!
また、以下の違いはありますか?
MyClass<Integer> myObject1 = new <String> MyClass<>(""); // JDK7 only
MyClass<Integer> myObject2 = new MyClass<>(""); // JDK7 only
MyClass<Integer> myObject3 = new <String> MyClass<Integer>("");