Array-List里面的构造函数作为参数之一,如何创建一个新对象?

时间:2012-05-12 00:08:34

标签: java constructor arraylist

我遇到了一个构造函数的问题,该构造函数将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;
}    

}

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

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

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

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

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

Last Thing错误是“找不到合适的构造函数ArraList&lt;&gt;”

3 个答案:

答案 0 :(得分:23)

你可以尝试:

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

答案 1 :(得分:1)

@ Edwin的答案很好,但你也可以放弃ArrayList构造函数,转而使用简单的强制转换。 Arrays.asList已经为您创建了new ArrayList

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

答案 2 :(得分:0)

还有另一种方法可以使用 Java 8 Stream API 您可以创建对象流并将其作为List(或Set或任何可以构建your own collector的原因)收集。

Stream.of(
        new MyClassConstructor("supplierSerialNo", "supplierSerialNo", String.class),
        new MyClassConstructor("title", "title", String.class),
        new MyClassConstructor("kind", "kind", String.class))
.collect(Collectors.toList())