4

我遇到了一个将arrayList 作为参数之一的构造函数的问题。

public class ItemisedProductLine extends ProductLine{

public static ArrayList<String> serialNumbers;

public ItemisedProductLine(String productCode, double recRetPrice, double salePrice, int quantity, String description, ArrayList<String> SerialNumbers){
    super( productCode,  recRetPrice,  salePrice,  quantity,  description);
    this.serialNumbers = serialNumbers;
}    

}

现在在我的类 Inventory 中,我想实例化一个新的 ItemisedProductLine 并将序列号的 arryList 传递给构造函数

ItemisedProductLine item = new ItemisedProductLine("productCode", 2600, 2490, 2, "descrpition", new ArrayList<String>("1233456", "6789123"));

这在Java中可能吗?这似乎不是一个常见的任务,没有找到任何例子。

作为替代方案,我可以使用通用数组而不是 Array-List 但由于大小未知,我无法初始化它

希望我不会忘记另一个括号:-)

最后一件事是错误是“没有找到合适的构造函数 ArraList<>”

4

3 回答 3

23

你可以试试:

new ArrayList<String>(Arrays.asList("1233456", "6789123"))
于 2012-05-12T00:10:18.703 回答
1

@Edwin 的回答很好,但您也可以放弃ArrayList构造函数以支持简单的演员表。Arrays.asList已经为您创建了一个new ArrayList

(ArrayList<String>) Arrays.asList("1233456", "6789123")

于 2013-06-01T01:07:50.437 回答
0

还有另一种使用Java 8 Stream API的方法。
您可以创建对象流并将它们收集为 List (或 Set 或任何您可以构建自己的收集器的原因)。

Stream.of(
        new MyClassConstructor("supplierSerialNo", "supplierSerialNo", String.class),
        new MyClassConstructor("title", "title", String.class),
        new MyClassConstructor("kind", "kind", String.class))
.collect(Collectors.toList())
于 2015-11-15T11:32:44.467 回答