ジェネリックメソッドをテストするためにmockitoを使用しています。しかし、junit-test を実行すると ClassCastException が発生します。
テスト中のメソッドは次のようになります。
public ExampleClass {
public <E> E randomObject(List<E> list) {
E e = list.get(0);
return e;
}
}
モックは次のようになります。
ExampleClass exampleMock = mock(ExampleClass.class);
List listMock = mock(List.class);
when(exampleMock.randomObject(Matchers<List<String>any())).thenReturn("Hello");
when(exampleMock.randomObject(Matchers.List<Integer>any())).thenReturn(20);
Exception はwhen-methodの 2 番目の定義で表示されます。このメソッドは、変更できない 1 つのタイプのみを受け入れているようです。しかし、なぜそうなのですか?プレーン Java で 2 つの異なる型を持つジェネリック メソッドを使用すると、例外は表示されません。
誰か助けてくれませんか?