Возможный дубликат:
Какой конструктор выбирается при передаче null?
Недавно я встретил это любопытство, кодируя несколько дней назад и не могу понять, почему происходит следующее:
Учитывая класс ниже
public class RandomObject{
public RandomObject(Object o){
System.out.println(1);
}
public RandomObject(String[] s){
System.out.println(2);
}
}
Когда выполняется вызов new RandomObject(null);
, вывод всегда 2
независимо от порядка, в котором были созданы конструкторы. Почему null
ссылается на строковый массив, а не на объект?