これは議論のフォローアップの質問のようなものです:JavaチュートリアルからのJava 7ダイヤモンド操作メソッド呼び出しで
Why doesn't the diamond operator work within a addAll() call in Java 7?
、
http://docs.oracle.com/javase/tutorial/java/generics/gentypeinference.html
。なお、ダイヤモンドはメソッド呼び出しでよく機能します。しかし、もっと分かりやすくするために、ダイヤモンドを主に宣言されている変数を初期化することをお勧めします。
私は最初の行について少し混乱しています。 の場合はダイヤモンドが呼び出されますか?
ダイヤモンド演算子の作品がここに見つけることができる方法についてもう少し説明:
そしてこのことから、私は正常に動作され、次のことを試してみました:
は私が持っていることを与えます
private static class Box<T>{
public Box(T t){}
}
static void f(Box<Integer> box){}
次のようなコールが正常にコンパイルされます。
上記のf()
のメソッド呼び出しでコンストラクタを呼び出す際の型パラメータは、コンストラクタの引数(つまりInteger
)から推測されます。
だから、これはチュートリアルではない、ことができ、誰もが親切にもどこダイヤモンドは作品例を提供する場合はダイヤモンドは、多くの場合、この方法で動作することを
注
を呼び出す言うとき意味されるものですメソッド呼び出しの?
@gurungそのa typo。カット&ペーストの悪い例:( –