将对象传递到构造函数 Java



我有一个类构造函数

public Knapsack(Item[] items){
// to do
}

然后我有 Item 类,它接受两个参数字符串和 int。 所以例如

Knapsack k = new Item("Pen", 15);

当这个对象传递到其他类中的构造函数时,我如何只能使用单个参数,例如"PEN">int 15

你应该像这样将数组传递给构造函数:

Knapsack k = new Knapsack(new Item[]{new Item("Pen", 15)});

此外,如果要将文本值传递给背包类而不是 Item 的数组,则可以在此处应用 Builder 模式。

正如构造函数所说,你需要一个项目数组。背包不能分配给物品

例如

Item[] items = new Item[1];
items[0] = new Item("Pen", 15);
Knapsack k = new Knapsack(items);

或者,您可以为背包定义构建器方法

public Knapsack(){
// to do
}
public Knapsack withItem(String name, int amount) {
Item i = new Item(name, amount);
// to do: add to the Knapsack 
return this;
} 

那么你会有

Knapsack k = new Knapsack().withItem("Pen", 15);

您可以将多个withItem呼叫链接在一起

最新更新