为什么它为空?

时间:2016-11-21 04:08:27

标签: java constructor

我理解关键字“this”用于在另一个构造函数中调用构造函数。在下面的代码中,我不明白为什么在调用构造函数时使用NULL,如下所示:

this(filename, null);

以下是完整的代码:

class Image {
    Image(String filename) {
        this(filename, null);
        System.out.println("Image(String filename) called");
    }

    Image(String filename, String imageType) {
        System.out.println("Image(String filename, String imageType) called");
        if (filename != null) {
            System.out.println("reading " + filename);
            if (imageType != null) {
                System.out.println("interpreting " + filename + " as storing a " +
                        imageType + " image");
            }
        }
        // Perform other initialization here.
    }
}

1 个答案:

答案 0 :(得分:0)

在评论中已经提到过这一点,但是你的第一个构造函数不知道图像类型,因此它不能合理地传递null以外的任何内容。第二个构造函数可以很好地处理该参数的null,因此不存在破坏的风险。