受保护方法的Java不明确类型

受保护方法的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

我面临Eclipse发出的以下错误消息:

方法getString(String,BasicNameValuePair[])对于类型Class1不明确

对于以下代码:

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
在哪里?在同一个包裹里?是的,他们在同一个包裹里。这就是原因。非常感谢。