我似乎无法弄清楚当我尝试调用的构造函数应该使用传递给我从中调用它的构造函数的值时,如何链接构造函数。我试过这个:public BoundingBox(Point a, Point b){ Point[] points = {a, b} this(points); }但是我被告知,对 的调用必须在构造函数的第一行。this我正在尝试调用此构造函数public BoundingBox(Point[] input){ //do some work}理想情况下,我可以链接这些构造函数。否则,我可能不得不重构我的代码。
3 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
您可以将这两个构造函数替换为以下使用 Varargs 的构造函数
public BoundingBox(Point ... input){
//do some work
}
关于瓦拉格斯的简介
一个方法可以使用一个变量参数(变量参数),就好像它是一个数组一样。但是,它与数组略有不同。vararg 参数必须是方法的参数列表中的最后一个元素。这意味着每个方法只允许有一个 vararg 参数。
使用 vararg 参数调用方法时,您可以选择。您可以传入数组,也可以列出数组的元素并让 Java 为您创建它。您甚至可以在方法调用中省略 vararg 值,Java 将为您创建一个长度为零的数组。

慕容森
TA贡献1853条经验 获得超18个赞
可以使用创建数组的静态函数
static private Point[] createPointArray(Point a, Point b)
{
Point[] points = {a, b}
return points;
}
public BoundingBox(Point a, Point b)
{
this(createPointArray(a,b));
}
添加回答
举报
0/150
提交
取消