【发布时间】:2014-04-09 18:38:01
【问题描述】:
我正面临 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[],但请注意此处的protected 修饰符。 byte[] 作为参数的方法根本不应该对Class2 可见,因此不会有歧义。
为什么受保护的方法对其他(非子类)类可见并导致此错误?
【问题讨论】:
-
Class2相对于Class1在哪里?在同一个包中? -
是的,它们在同一个包中。
标签: java eclipse methods protected ambiguous