我在构造函数中初始化 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
,这没有任何意义。您必须将一些 List
的 Point
传递给构造函数。构造函数的所有其他参数也是如此。
关于 java 。在构造函数中初始化列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35996495/