我在构造函数中初始化List时遇到问题。

我正在尝试将参数分配给变量“ tr”,tr.getVertices()是一个列表。

SimpleTriangle tr = new SimpleTriangle(tr.getVertices(), tr.getColour(), tr.getThickness(), ShapeType.TRIANGLE);
trList.add(tr);


它高亮显示tr.getVertices()并说“变量tr可能未初始化”

其中SimpleTriangle是子类。

public SimpleTriangle(List<Point> vertices, Color colour, int thickness, ShapeType shapeType) {
super(vertices, colour, thickness, shapeType); }


父类有方法

    public List<Point> getVertices() {
    return vertices;
}

最佳答案

您正在尝试对尚未初始化的变量调用方法:

//              v--this variable        v--is not yet initialized here
SimpleTriangle tr = new SimpleTriangle(tr.getVertices(), tr.getColour(), tr.getThickness(), ShapeType.TRIANGLE);


您正在尝试使用自己的顶点初始化SimpleTriangle,这没有任何意义。您必须将某些ListPoint传递给构造函数。构造函数的所有其他参数也是如此。

关于java - Java。在构造函数中初始化列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35996495/

10-11 01:00