受保护方法的Java不明确类型
我面临Eclipse发出的以下错误消息: 方法getString(String,BasicNameValuePair[])对于类型Class1不明确 对于以下代码:受保护方法的Java不明确类型,java,eclipse,methods,protected,ambiguous,Java,Eclipse,Methods,Protected,Ambiguous,我面临Eclipse发出的以下错误消息: 方法getString(String,BasicNameValuePair[])对于类型Class1不明确 对于以下代码: public final class Class1 { public static void getString(String requiredArguments, BasicNameValuePair[] dataPairs) { } protected static void getString(St
public final class Class1 {
public static void getString(String requiredArguments, BasicNameValuePair[] dataPairs) {
}
protected static void getString(String requiredArguments, byte[] dataBytes) {
}
}
public final class Class2 {
public static void callTest() {
Class1.getString("This is a test", null);
}
}
callTest()
中的代码将导致上述错误
很明显,null
可以转换为BasicNameValuePair[]
以及字节[]
,但请注意此处的受保护的
修饰符。以byte[]
作为参数的方法对于Class2
应该是不可见的,因此不会有歧义
为什么受保护的方法对其他(非子类)类可见并导致此错误?因为这些类位于同一个包中 受保护的修改器指定只能访问该成员 在其自己的包内(与包专用一样),并且 它的类在另一个包中的子类
与
Class1
相关的Class2
在哪里?在同一个包裹里?是的,他们在同一个包裹里。这就是原因。非常感谢。