मैं जावा में जेनेरिक क्लास का नकल करने के लिए मॉकिटो मॉक फ्रेमवर्क का उपयोग कर रहा हूं। ढांचे का उपयोग प्रलेखन से काफी स्पष्ट प्रतीत होता है, मुझे जेनेरिक कक्षाओं का मज़ाक उड़ाने के लिए एक उदाहरण नहीं मिला।जेनेरिक विधियों में जेनेरिक क्लासेस
public static <T> T mock(Class<T> classToMock) {
...
}
मैं एक सामान्य प्रकार IState<StateId, Event>
है और मैं उपरोक्त विधि का उपयोग कर इसे का दृष्टांत हैं: नकली ढांचे निम्न विधि में शामिल है।
IState<StateId, Event> mockState = Mockito.mock(IState.class);
मैं इस कोड के लिए निम्न चेतावनी मिलती है::
Type safety: The expression of type IState needs unchecked conversion to conform to IState<StateId,Event>
मुझे लगता है कि मैं जानता हूँ कि समस्या क्या है मैं निम्नलिखित की कोशिश की। mock
विधि IState
का एक प्रकार देता है, लेकिन जिस चर को मैं असाइन कर रहा हूं वह एक विशेष प्रकार IState<StateId, Event>
है, इसलिए मुझे किसी भी तरह यह बताने की ज़रूरत है कि मैं जिस वर्ग को बना रहा हूं वह विशेष रूप से IState<StateId, Event>
है, लेकिन मुझे नहीं पता कि वाक्यविन्यास क्या है ये है। मैंने निम्नलिखित लोगों की कोशिश की, लेकिन उन्होंने सभी को वाक्यविन्यास त्रुटियां दीं।
IState<StateId, Event> mockState = Mockito.mock(IState<StateId, Event>.class);
IState<StateId, Event> mockState = Mockito.mock(IState.class<StateId, Event>);
चूंकि यह एक परीक्षण है (मुझे मॉकिटो के कारण लगता है) आप केवल चेतावनी को अनदेखा कर सकते हैं, 'आईएसटीएटी' नहीं है। <स्टेटआईडी, इवेंट> क्लास ''class' –
@RC के लिए: मैं ऐसा कर सकता हूं, लेकिन मैं मैं अभी भी उत्सुक हूं कि जावा में इन चीजों को कैसे संभाला जाता है। – petersohn