Dziwny przypadek krawędzi generycznej z wnioskiem Mockito.when () i ogólnym

Piszę przypadek testowy, który używajava.beans.PropertyDescriptor używając Mockito i chcę kpić z zachowaniagetPropertyType() zwrócić dowolneClass<?> obiekt (w moim przypadkuString.class). Normalnie zrobiłbym to, wywołując:

// we already did an "import static org.mockito.Mockito.*"
when(mockDescriptor.getPropertyType()).thenReturn(String.class);

Jednak, co dziwne, nie kompiluje się:

cannot find symbol method thenReturn(java.lang.Class<java.lang.String>)

Ale gdy określę parametr typu zamiast zależeć od wnioskowania:

Mockito.<Class<?>>when(mockDescriptor.getPropertyType()).thenReturn(String.class);

wszystko jest hunky dory. Dlaczego kompilator nie może poprawnie wywnioskować typu zwracającego kiedy () w tym przypadku? Nigdy wcześniej nie musiałem określać tego parametru.

questionAnswers(1)

yourAnswerToTheQuestion