[Ljava.lang.Object 或者 No signature of method

終於解決了這個陳年老問題了:

報錯信息如下:

 No signature of method: mm.jihe.utils.NotifyService.sendRegularIssueEmail() is applicable for argument types: (java.util.ArrayList, [Ljava.lang.Object;, java.util.ArrayList) values: [[
    [mm.jihe.pm.Issue: 882, mm.jihe.pm.MendPlan: 99590, null],
    [mm.jihe.pm.Issue: 479, mm.jihe.pm.MendPlan: 1001555, null],
    [mm.jihe.pm.Issue: 1002247, null, mm.jihe.pm.HintLetter: 1002243]
], [mm.jihe.pm.Issue : 882, mm.jihe.pm.MendPlan : 99590, null], [[email protected], [email protected], [email protected], [email protected]]]

代碼如下:

                //原循環是這樣子的	

                for(i in issues){
					sendRegularIssueEmail(issues,i,mendTracker)
					cnt++;
				}
				
                //修改後的
				for(int i =0;i<issues.size();i++){// 整改跟蹤負責人
					Object [] obj = (Object [])issues.get(i);
					Issue d = (Issue)obj[0]
					sendRegularIssueEmail(issues,d,mendTracker)
					cnt++;
				}

                //調用的sendRegularIssueEmail接口如下
                private sendRegularIssueEmail(def issueList,Issue i,List sendedList){

                }

通過代碼和錯誤日誌可以分析出來,是我們參數的類型錯誤導致的問題,我們需要的參數類型是Issue,而循環出的i的類型是數組[[mm.jihe.pm.Issue: 882, mm.jihe.pm.MendPlan: 99590, null],
    [mm.jihe.pm.Issue: 479, mm.jihe.pm.MendPlan: 1001555, null],
    [mm.jihe.pm.Issue: 1002247, null, mm.jihe.pm.HintLetter: 1002243]] ,那麼就造成上面的錯誤。

我們只要將類型轉換一下取出自己需要的類型就行了。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章