我正在使用Java 1.7進行單元測試的項目中使用Mocikto框架(版本1.9.5)現在我正在將項目遷移到構建和的Java 1.8運行。Type中的方法不適用於可變參數方法升級到Java 1.8的參數
在我的單元測試的一個我試圖嘲弄以下方法
public <T> List<T> myMethod(final String sql, final MyMapper<T> MyMapper, final Argument... args)
與此代碼
String learningId = "testLeaId";
String catalogId = "testCatId";
List<String> returnList = new ArrayList<String>();
returnList.add(catalogId);
when(myService.myMethod(Mockito.anyString(), Mockito.any(MyMapper.class), (Argument[]) Mockito.anyVararg())).thenReturn(returnList);
此代碼的Java 1.7工作正常,現在當我升級我的Java版本到1.8在我的pom.xml我得到以下錯誤...
[ERROR] The method myMethod(String, MyMapper<T>, Argument...) in the type MyService is not applicable for the arguments (String, MyMapper, Argument)
C:\somepath\MyDaoTest.java:59
任何人都可以幫我解決這個錯誤嗎?謝謝
這是一個編譯錯誤,有可能是在此爲myService一些模糊的方法聲明造成這種情況下,雖然你的方法簽名和它的模仿一下好嗎,你能發佈這個'MyService'類的更多細節?你沒有在你的IDE上得到任何錯誤/警告? –
我有錯誤既不的Java 1.7,也不是1.8與完全相同的代碼是你的,也許你測試你使用maven指過時的方法,類等等?試着做了'MVN清潔install',這可能是罪魁禍首,比其他任何想到:/ –
提示:還在等待** **任何種類的反饋的答案。我認爲這僅僅是我們的新手,在這裏搭起的問題和從來就不願回頭;-( –