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.