我想知道为什么在地方(),它会返回不同的值。在构造函数中,它返回3,这是有道理的。但是,在第二个()中,它返回0.我认为这两个地方都应该返回0.我在这里遗漏了什么?
error()
答案 0 :(得分:3)
您必须为构造函数参数赋值属性,否则您正在使用参数vec2d
而不是属性vec2d
:
public Vector2D(List<List<Integer>> vec2d) {
this.vec2d = vec2d;//assign Parameter to list
if(this.vec2d.size() == 0) {
this.it = null;
} else {
this.size = this.vec2d.size();
System.out.println("this size is " + size); // * returns 3
this.it = this.vec2d.get(0).iterator();
}
}
尝试将List<List<Integer>> vec2d
方法参数重命名为其他内容,您将会看到。