java递归构造函数调用?

9o685dep  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(377)
public class RGBImage {

    private RGBColor[][] _image;

    public RGBImage(RGBColor[][] pixels) {
        _image = new RGBColor[pixels.length][pixels[0].length];
        for (int i = 0; i < _image.length; i++)
            for (int j = 0; j < _image[i].length; j++)
                _image[i][j] = new RGBColor(pixels[i][j]);
    }

    public RGBImage(RGBImage other) {
        this(new RGBImage(other._image));
    }

第二个构造器应该调用第一个构造器,但是却给了我“递归构造器调用”错误。
我明白错误的意思,只是不明白递归在哪里。第一个承包商 RGBColor[][] 作为参数,以及 other._image 应该是那种类型的数组。我错过了什么?
谢谢。

6ju8rftf

6ju8rftf1#

第二个构造函数可能如下所示:

public RGBImage(RGBImage other) {
    this(other._image);
}

您的版本创建了另一个示例,该示例创建了另一个示例,以此类推。 this() 正在调用另一个构造函数,无需 new 一个新示例。

相关问题