楼上全部拆谈,当你为object作过上万次的null判定,if(Object o!=null){ ...},竟然还能说null不能为Object赋值。
其次,数组本身也属于Object,很显然数组的解包与本题无关。看如下代码:
public class Test05 {
public static void main(String[] args) {
invoke(null);
}
private static void invoke(Object obj) {
System.out.println("Object");
}
/*private static void invoke(int[] nums) {
System.out.println("Arrays");
}*/
}
输出:Object
问题的关键在于,当数组和Object同时出现,为什么匹配数组,而不匹配Object。事实上,这涉及形参与实参的精确匹配问题。如上所述,数组是Object的子类,因此匹配数组要比匹配Object更为精确。 |