如何将varargs数组转换为2d数组

时间:2018-04-01 15:27:53

标签: java arrays multidimensional-array variadic-functions

  

我想将vararg数组转换为2d数组,但不适用于我。**

public class GridCombinedItem extends Item { 
private Item[] subitems;
float register[][] = new float[3][4];

public GridCombinedItem(String name, float price, Item... subitems) {
    super(name);
    this.price = price;
    this.subitems = subitems;
}

public Item[] getsubitems() {
    return subitems.clone();
}

public float getprice() {
    return this.price;
}

public void register(Item... subitems) {
    int count = 0;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            if (count == subitems.length)
                break;
            register[i][j]= subitems[count]; 
  

此时我收到错误“无法从项目转换为浮动”

        }
    }

}
  

这是我的Item类

public abstract class Item {

float price;
String name;

public Item(String name) {

    this.name = name;
}

public String getName() {
    return name;
}

public abstract float getprice();

public abstract float totalprice();

public abstract void print(int indent);

}
  

我应该准确改变什么   请帮帮我......

1 个答案:

答案 0 :(得分:0)

Item的实例本身不是数字,它是对象 - 它会导致错误。

您想使用商品还是仅仅使用其价格?

register[i][j] = subitems[count].getprice();

如果名称,请使用不同的getter:

register[i][j] = subitems[count].getName();