ArrayList<String>.class
jest konstruktem nie jest obsługiwana przez kompilator Javy.
Na pierwszej próbie, należy to zrobić:
@SuppressWarnings("unchecked")
ArrayList<String> mocked = mock(ArrayList.class);
Dzieje się tak dlatego mock
metoda może zwrócić tylko rodzaj surowca. Ogólnie nie jest dobrze używać typów surowych, ponieważ może to prowadzić do błędów w czasie wykonywania. W twoim przypadku wszystko jest w porządku, ponieważ wiesz, że mocked
i tak nie jest PRAWDZIWYM ArrayList<String>
.
Tylko ogólna porada dotycząca adnotacji @SuppressWarnings("unchecked")
. Staraj się trzymać go jak najbliżej źródła problemu. Na przykład możesz umieścić ją tylko dla deklaracji zmiennej lub możesz ją pominąć dla całej metody. Zasadniczo, pomiń go dla zmiennej, ponieważ w przeciwnym razie opis metody szerokiej może tłumić inne problemy w twojej funkcji.
Dziękuję. Inteligentne rozwiązanie. To trochę niesprawiedliwe, że nie jest tak oznaczone. – pimpf0r
Świetna odpowiedź, skończyło się na zastosowaniu tego podejścia. –
Tak, nie spojrzałem na to pytanie od wieków ... Przepraszam. – Sardathrion