在 List<> 中初始化一个 Point2D
Initialize a Point2D in List<>
如果我声明了一个简单的 List。
示例:
List<Point2D> listOfPoints;
/* What I tried */
Point2D point1;
listOfPoints.add(point1);
但是,如何初始化 point1
以便我可以得到坐标 (3,2)
?
您必须创建 Point2D
的实例。现在,您正在将 null
添加到 listOfPoints
。另外,listOfPoints
未初始化,因此您的代码将生成 NullPointerException
。试试这个:
List<Point2D> listOfPoints = new ArrayList<>(); // or another List implementation class
Point2D point1 = new Point2D.Float(3, 2); // or perhaps Point2D.Double
listOfPoints.add(point1);
此外,一旦您拥有 Point2D.Float
或 Point2D.Double
对象,您就可以明确设置坐标,方法是直接分配给 x
和 y
字段或通过调用 setLocation()
并传递坐标。
你可以试试:
Point2D point1 = new Point2D.Double(3, 2);
或
Point2D point1 = new Point2D.Float(3, 2);
您还需要初始化您的列表,例如
List<Point2D> listOfPoints = new ArrayList<>();
listOfPoints.add(point1);
简单地做 new Point2D(3, 2)
是行不通的,因为 Point2D 是抽象的。
如果我声明了一个简单的 List
示例:
List<Point2D> listOfPoints;
/* What I tried */
Point2D point1;
listOfPoints.add(point1);
但是,如何初始化 point1
以便我可以得到坐标 (3,2)
?
您必须创建 Point2D
的实例。现在,您正在将 null
添加到 listOfPoints
。另外,listOfPoints
未初始化,因此您的代码将生成 NullPointerException
。试试这个:
List<Point2D> listOfPoints = new ArrayList<>(); // or another List implementation class
Point2D point1 = new Point2D.Float(3, 2); // or perhaps Point2D.Double
listOfPoints.add(point1);
此外,一旦您拥有 Point2D.Float
或 Point2D.Double
对象,您就可以明确设置坐标,方法是直接分配给 x
和 y
字段或通过调用 setLocation()
并传递坐标。
你可以试试:
Point2D point1 = new Point2D.Double(3, 2);
或
Point2D point1 = new Point2D.Float(3, 2);
您还需要初始化您的列表,例如
List<Point2D> listOfPoints = new ArrayList<>();
listOfPoints.add(point1);
简单地做 new Point2D(3, 2)
是行不通的,因为 Point2D 是抽象的。