Странный обобщенный случай с Mockito.when () и выводом обобщенного типа
Я пишу тестовый пример, в котором используетсяjava.beans.PropertyDescriptor
используя Mockito, и я хочу издеваться над поведениемgetPropertyType()
вернуть произвольныйClass<?>
объект (в моем случае,String.class
). Обычно я бы сделал это, просто вызвав:
// we already did an "import static org.mockito.Mockito.*"
when(mockDescriptor.getPropertyType()).thenReturn(String.class);
Однако, как ни странно, это не компилируется:
cannot find symbol method thenReturn(java.lang.Class<java.lang.String>)
Но когда я указываю параметр типа вместо зависимости от логического вывода:
Mockito.<Class<?>>when(mockDescriptor.getPropertyType()).thenReturn(String.class);
все чертовски дорого Почему в этом случае компилятор не может правильно определить тип возвращаемого значения where ()? Мне никогда не приходилось указывать этот параметр раньше.