我使用以下方法创建了一个库:
protected static int foo(String strParam, Object... params)
我将这个库链接到我的应用程序,然后调用方法:
foo("a","b")
但它没有编译,我收到以下错误消息: 实际参数String无法通过方法调用转换转换为Object []。
任何想法?
答案 0 :(得分:3)
适合我:
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;
}
}
所以:
foo
某处(即重载方法)?答案 1 :(得分:0)
方法是protected
。调用是在同一个包中的类中还是在子类中发生的?如果不是,则呼叫者无法看到foo
的此定义。我不明白为什么它会导致那个特定的错误。这可能是编译器试图将其与不同方法签名匹配的证据。
您的通话真的只是foo( ... )
吗?我希望看到包含类的名称,因为它是一个静态方法 - 即LibraryClass.foo( ... )
。如果您没有限定方法名称,那么它应该在本地类范围内查找匹配的声明。