要么调用构造函数(在线)时创建数组:
new Unit("myname", new double[]{1.0,2.0},...);
或调整你的构造函数使用可变参数:
public Unit(String name, int weight, int strength, int agility, int toughness,
int currentHealth, int currentStamina, double... initialPosition) { ... }
//call
new Unit("myname", w,s,a,t,c,stam, 1.0, 2.0);
不过,我认为你需要坐标的特定号码位置,所以我不会使用阵列,但一个对象为:
class Position {
double x;
double y;
Position(x, y) {
this.x = x;
this.y = y;
}
}
public Unit(String name, Position initialPosition, int weight, int strength, int agility, int toughness,
int currentHealth, int currentStamina) { ... }
//call:
new Unit("myname", new Position(1.0, 2.0), ...);
使用阵列的优点:
- 它是类型安全的,即您传递位置而不是任意的双精度数组。这样可以防止您偶然在其他阵列中传递的错误。
- 它定义了编译时的坐标数,即你知道一个位置的坐标数(在我的例子中是2),而当使用一个数组(或可变参数基本相同)时,你可以传递任意数量的坐标( 0到Integer.MAX_VALUE)。
如果你不想让你调用构造函数之前定义的数组,那么为什么使它成为一个参数?你总是可以重载构造函数 - 或者创建另一个不使用数组作为参数的构造函数。 –