ビルダーコンストラクタ内でbyte []配列のArrayListをコピーしようとしています。 arrayLst1をarrayLst2にコピーしたい。私は、このコード(および他のバリエーション)を試してみましたので、Googleはイテレータhere、hereに私をリードし、herebyte []配列コピーのArrayListを宣言するエラーにより、イテレータを使用する欺瞞的エラーメッセージが返される
Exception in thread "main" java.util.ConcurrentModificationException
:私はこのコードでそれをやってみました:
builder.arrayLst2.forEach(item->this.arrayLst1.add(item));
が、私は次のエラーを得ました。
for (Iterator itr = builder.arrayLst1.iterator(); itr.hasNext();) {
this.arrayLst2.add(itr.next());
}
2行目は、「追加メソッドには適切なメソッドが見つかりません」というエラーメッセージが表示されます。
私はの線に沿って試してみました:
Iterator itr = this.arrayLst.iterator();
builder.arrayLst2.forEach(item->itr.next() );
が、私は最初の配列1をステップと配列2にコピー/追加するイテレータを使用する方法を見つけ出すことはできません。
ArrayListバイト[]を別のクラスに複製するにはどうすればよいですか?私は簡単な解決策がなければならないと確信していますが、私はそれを見つけることができません。
編集:宣言エラーは、arraylistが宣言されていないことを効果的に意味しました。これを言うのではなく、コンパイラのエラーメッセージはイテレータを使用する必要があることを指摘しています。この回答へ
arrayLst1とarrayLst2の宣言を追加できますか? –
こんにちは。私は両方の変数を宣言しましたが、コードスニペットではこれを示していません。 – dazz
あなたがコードスニペットにそれらを表示するように求められているのは、まさにその理由です。完全な最小限の例を投稿してください。投稿されたコードのどこでも生の型を使用しています。それをしないでください。私たちはJava 9に属しています。 –