java.beans.PropertyDescriptor
を使ったテストケースを作成しています。getPropertyType()
の動作を擬似して、任意のClass<?>
オブジェクトを返すようにしたいケース、String.class
)。Mockito.when()とジェネリック型推論の奇妙なジェネリックエッジケース
cannot find symbol method thenReturn(java.lang.Class<java.lang.String>)
をしかし、私は代わりに推論に依存の型パラメータを指定した場合::
// we already did an "import static org.mockito.Mockito.*"
when(mockDescriptor.getPropertyType()).thenReturn(String.class);
をしかし、奇妙なことに、これはコンパイルされません。通常、私はちょうど呼び出すことによってそれを行うだろう
Mockito.<Class<?>>when(mockDescriptor.getPropertyType()).thenReturn(String.class);
すべてが大変です。この場合、コンパイラがwhen()の戻り値の型を正しく推測できないのはなぜですか?私はそのような前にパラメータを指定する必要はありませんでした。