これは、ディスカッションに関するフォローアップの質問のようなものです。
Java 7 の addAll() 呼び出し内でダイヤモンド演算子が機能しないのはなぜですか?
Javaチュートリアルから、
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(new Box<>(new Integer(10)));
上記のメソッド呼び出しでコンストラクターを呼び出す際の型パラメーターは、コンストラクターf()
への引数 (つまりInteger
) から推測されます。
これは、チュートリアルが言うときの意味ですか
ひし形はメソッド呼び出しで機能することが多いことに注意してください
そうでない場合は、ダイヤモンドがメソッド呼び出しで機能する例を提供してくれる人はいますか?