public class Confusing
{
public Confusing(Object o) {
System.out.println("Object");
}
public Confusing(double[] dArray) {
System.out.println("double array");
}
public static void main(String args[]) {
new Confusing((Object)null);
}
}
我想知道 为什么 会调用double[] 参数的饿构造函数!!谢谢
public static void main(String args[]) {
new Confusing(null);
}
是这样
public class Confusing { public Confusing(Object o) {
System.out.println("Object");
} public Confusing(double[] dArray) {
System.out.println("double array");
} public static void main(String args[]) {
new Confusing((Object) null); // Object
new Confusing((double[]) null); // double[]
new Confusing(null); // double[]
}
}其中第三个,如果加上其他对象类型参数的构造函数(比如String, char[]),会编译错误,提示有歧义
请检查你的编译器和环境吧……
我的1.6
如果你再写一个double参数的……
呵呵,这个需要研究过Java深层原理的人来解答了。关注中……
本人头像说明
http://topic.csdn.net/u/20100513/11/dfac501f-af53-48ca-b2bd-3d5b77ede111.html