2017-11-08 1 views
0
から提出少ないとオブジェクトの新しいJavaのリストの作成

は、私たちは、私は私はgetBooksのようなフィールドを持つ(異なる層から)が、オブジェクトの本のリストを返しますは、Li

class Book 
{ 
    String name; 
    String bookId; 
    String author; 
} 

オブジェクト帳を持っているとしましょう

唯一のフィールドだけでなく、別のフィールド名でマップされた新しいリストを作成する必要があります。name、bookId、authorという名前の_idとauthだけを必要とします。 私たちは反復でそれを達成できると理解していますが、最小限のステップでそれを行う最良の方法は何ですか。

+0

アドバイスの言葉をストリームを使用して解決したい場合。そうでなければ、はるかに多くの助けを得るでしょう、そして、あなたが得る助けはより意味深くなり、あなたはもっと学びます!コンピュータサイエンスは難しく、正しく学習しなければ難しくなります! – corsiKa

答えて

1

Dozerを使用してこれを達成できます。フィールドをマッピングする必要があることを定義し、Dozerを使用してマッピングする方法を定義することもできます。

か、そう、これは宿題のように見えることから、あなたは真と正直な試みを作り、あなたがこれまでに行っているものを投稿する必要があり、

CollectionType mappedCollection = yourCollectionToMap.stream().map(b -> { 
    MappingBookClass newBook = new MappingBookClass(); 
    //set values needed 
    newBook .setName(b.getName()); 
    ... 
    ... 
return newBook; 
    }).collect(Collectors.toList()); 
+0

述べたように、私は次のコードを用いて試みた: リスト mappedCollection = list.stream()マップ(B - > { \t \t \t NewBook newCar =新しいNewBook(); \t \t \t newCar.setNewBookID(b.bookId。 ); \t \t \t newCar.setNewBookName(b.name)。 \t \t \t \t})))((Collectors.toListを収集します。 \t \t上記のメッセージのとおりですが、コンパイルエラーが発生するとマップメソッドは引数に適用されません。ここには何もありません。 – Sajna

+0

マップ関数内のラムダ式の結果を返す必要があります。例:return newCar; –

+0

あなたの目的が解決したら、答えを受け入れてください。 –

関連する問題