Java 为什么它是空的?
我知道关键字“this”用于调用另一个构造函数中的构造函数。在下面的代码中,我不理解在如下调用构造函数时为什么使用NULL:Java 为什么它是空的?,java,constructor,Java,Constructor,我知道关键字“this”用于调用另一个构造函数中的构造函数。在下面的代码中,我不理解在如下调用构造函数时为什么使用NULL: this(filename, null); 以下是完整的代码: class Image { Image(String filename) { this(filename, null); System.out.println("Image(String filename) called"); } Image(Str
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.
}
}
注释中已经提到了这一点,但是您的第一个构造函数不知道图像类型,因此除了
null
之外,它不能合理地传递任何内容。第二个构造函数能够很好地处理该参数的null
,因此没有由此导致的损坏风险。因为imageType
是未知的。如果解决方案解决了您的问题,我们鼓励您接受该解决方案(包括您过去的所有问题)。一个不接受解决方案的用户让我厌烦。非常感谢!!!对于调用另一个构造函数,我们需要传递所有参数,所以我们不在第一个构造函数中输入参数类型,所以为了调用第二个构造函数,我们必须将null
作为第二个参数传递,否则它将抛出错误