Java編譯錯誤我創建了下面的方法庫:可變參數
protected static int foo(String strParam, Object... params)
我這個庫鏈接到我的申請,調用方法:
foo("a","b")
,但它並不能編譯,我收到以下錯誤消息: 實際參數字符串不能通過方法調用轉換轉換爲Object []。
有什麼想法嗎?
Java編譯錯誤我創建了下面的方法庫:可變參數
protected static int foo(String strParam, Object... params)
我這個庫鏈接到我的申請,調用方法:
foo("a","b")
,但它並不能編譯,我收到以下錯誤消息: 實際參數字符串不能通過方法調用轉換轉換爲Object []。
有什麼想法嗎?
工作對我來說:
public class XXX extends Lib {
public static void main(String[] args) {
foo("a", "b");
}
}
class Lib{
protected static int foo(String str, Object... args) {
return 42;
}
}
所以:
什麼JDK版本是您使用foo
某處(即過載方法)?您使用的是什麼JDK版本? - > JDK 1.5_22 – user954469 2011-12-22 17:00:23
您使用的是Java的源/類版本? 「5」以下的任何內容都是無用的。 - >我使用-target 1.5和source 1.5進行編譯 – user954469 2011-12-22 17:00:54
是否有其他稱爲foo的方法(即重載方法)? - > NO – user954469 2011-12-22 17:01:05
該方法是protected
。該調用是發生在同一個包中的一個類中,還是發生在一個子類中?如果沒有,則調用者看不到foo
的這個定義。我不明白爲什麼它會導致那個特定的錯誤。這可能是編譯器試圖將其與不同方法簽名進行匹配的證據。
你的電話真的只是foo(...)
?我希望能看到包含類的名稱,因爲它是一種靜態方法 - 即LibraryClass.foo(...)
。如果您沒有限定方法名稱,則應該在本地類作用域中查找匹配聲明。
你從哪個Java版本調用它? – SLaks 2011-12-22 16:47:26