为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Java 中的数组进行构造函数链接

使用 Java 中的数组进行构造函数链接

缥缈止盈 2022-09-22 13:49:22

我似乎无法弄清楚当我尝试调用的构造函数应该使用传递给我从中调用它的构造函数的值时,如何链接构造函数。


我试过这个:


public BoundingBox(Point a, Point b)

{

    Point[] points = {a, b}

    this(points); 

}

但是我被告知,对 的调用必须在构造函数的第一行。this


我正在尝试调用此构造函数


public BoundingBox(Point[] input)

{

    //do some work

}

理想情况下,我可以链接这些构造函数。否则,我可能不得不重构我的代码。


查看完整描述

3 回答

?
绝地无双

TA贡献1613条经验 获得超4个赞

这是可能的

this(new Point[] {a, b});


查看完整回答
反对 回复 6天前
?
侃侃无极

TA贡献1686条经验 获得超10个赞

您可以将这两个构造函数替换为以下使用 Varargs 的构造函数


public BoundingBox(Point ... input){

    //do some work

}

关于瓦拉格斯的简介


一个方法可以使用一个变量参数(变量参数),就好像它是一个数组一样。但是,它与数组略有不同。vararg 参数必须是方法的参数列表中的最后一个元素。这意味着每个方法只允许有一个 vararg 参数。


使用 vararg 参数调用方法时,您可以选择。您可以传入数组,也可以列出数组的元素并让 Java 为您创建它。您甚至可以在方法调用中省略 vararg 值,Java 将为您创建一个长度为零的数组。


查看完整回答
反对 回复 6天前
?
慕容森

TA贡献1485条经验 获得超17个赞

可以使用创建数组的静态函数


static private Point[] createPointArray(Point a, Point b) 

    Point[] points = {a, b}

    return points;

}


public BoundingBox(Point a, Point b)

{

    this(createPointArray(a,b)); 

}


查看完整回答
反对 回复 6天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信