【发布时间】:2013-10-27 15:40:22
【问题描述】:
我添加了三个带参数的方法:
public static void doSomething(Object obj) {
System.out.println("Object called");
}
public static void doSomething(char[] obj) {
System.out.println("Array called");
}
public static void doSomething(Integer obj) {
System.out.println("Integer called");
}
当我调用doSomething(null) 时,编译器会以模糊方法 的形式抛出错误。那么问题是因为Integer 和char[] 方法还是Integer 和Object 方法?
【问题讨论】:
-
只需将
Integer更改为int。 -
@Mudassir:那到底能解决什么问题?
-
@Joachim Sauer:如果从 Integer 更改为 int,则 null 在 Java 中不会引用原始类型,因此编译器不会抛出错误。
-
@Joachim Sauer:它不会抛出
reference to doSomething is ambiguous错误。
标签: java oop null overloading