要麼調用構造函數(在線)時創建數組:
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)。
如果你不想讓你調用構造函數之前定義的數組,那麼爲什麼使它成爲一個參數?你總是可以重載構造函數 - 或者創建另一個不使用數組作爲參數的構造函數。 –