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