将对象传递给构造函数Java

时间:2018-10-20 19:18:57

标签: java

我有一个类构造函数

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

然后我有一个带有两个参数string和int的Item类。 例如

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

当将此对象传递给其他类的构造函数时,如何仅使用单个参数,例如“ PEN” 和int 15

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

例如

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链接在一起