4

引数の 1 つとして 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を使用する別の方法があります。
オブジェクトの Stream を作成し、それらを List (または Set など、独自の Collectorを構築できる原因) として収集できます。

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 に答える