Sto usando il framework Mockito mock per deridere una classe generica in Java. L'uso del framework sembra essere abbastanza chiaro dalla documentazione, non ho trovato un esempio per deridere classi generiche. Il quadro finto contiene il seguente metodo:Classi generiche in metodi generici
public static <T> T mock(Class<T> classToMock) {
...
}
Ho un tipo generico IState<StateId, Event>
e voglio creare un'istanza utilizzando il metodo di cui sopra. Ho provato quanto segue:
IState<StateId, Event> mockState = Mockito.mock(IState.class);
ricevo il seguente avviso per questo codice:
Type safety: The expression of type IState needs unchecked conversion to conform to IState<StateId,Event>
Credo di sapere quale sia il problema. Il metodo mock
restituisce un tipo di IState
, ma la variabile che sto assegnando è un tipo specializzato IState<StateId, Event>
, quindi devo in qualche modo dire che la classe che sto creando è specificatamente IState<StateId, Event>
, ma non so quale sia la sintassi per questo è. Ho provato i seguenti, ma hanno tutti dato errori di sintassi.
IState<StateId, Event> mockState = Mockito.mock(IState<StateId, Event>.class);
IState<StateId, Event> mockState = Mockito.mock(IState.class<StateId, Event>);
Poiché si tratta di un test (presumo a causa di mockito), puoi semplicemente ignorare l'avviso, non c'è 'IState. class' per' .class' –
@RC: Posso farlo, ma io Sono ancora curioso di sapere come gestire queste cose in Java. – petersohn