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
应该是那种类型的数组。我错过了什么?
谢谢。
1条答案
按热度按时间6ju8rftf1#
第二个构造函数可能如下所示:
您的版本创建了另一个示例,该示例创建了另一个示例,以此类推。
this()
正在调用另一个构造函数,无需new
一个新示例。