为什么将null传递给新对象会调用String Constructor?

时间:2014-06-03 13:59:12

标签: java string object constructor null

我从JonSkeets的评论中得到了这个 null可以转换为ObjectString,但不能转换为int

这解释了我的问题,但我并不完全理解这句话,我们如何进行这种转换

我一直试图弄清楚在给定的例子中实际上是如何调用String构造函数的

我的想法是什么 1:'null'不是字符串类的对象,那么它如何调用以字符串为参数的构造函数? (String类没有null param的构造函数,因此可能不会创建一个带有'null'的字符串对象)

2:如果我们删除String Constructor,那么,如何将id'null'视为Object并调用Object构造函数? ,AFAIK,null是一个特殊的文字,而不是一个对象。

public class Hussi {

        // Constructor 1 : Object
        public Hussi(Object i) {
            System.out.println("Object Constructor called");
        }

        // Constructor 1 : String
        public Hussi(String i) {
            System.out.println("String Constructor called");
        }

        // Constructor 1 : integer
        public Hussi(int k) {
            System.out.println("int Constructor called");
        }

        public static void main(String[] args) throws Exception {

            Hussi hussi = new Hussi(null);
        }
    }

我提到this问题,这是探讨答案而不是解释

0 个答案:

没有答案