Как получить списки полей из объекта модели в потоке и сопоставить с другим объектом модели? - PullRequest
1 голос
/ 19 апреля 2019

Я пытаюсь получить список полей из списка объектов модели, используя поток и сопоставить с другим списком объектов, но это дает мне ошибку ниже.

enter image description here

List<FinalTestModel> testModels2 = new ArrayList<>();
testModels2 =     testModels.parallelStream().filter(item -> 
item.getReceiverPtyId().equalsIgnoreCase("TestId"))
            .flatMap(e -> Stream.of(e.getMonthM(),  e.getRecevingAmount(), e.getRecevingCurrency(),
                e.getBTransactionCount())).collect(Collectors.toList());


Input = [TestModel(monthM=May, receiverName=A, receiverC=India, recevingAmount=0.00000, recevingCurrency=KRW, bTransactionCount=1, transactionCount=0), TestModel(monthM=June, receiverName=A, receiverC=India, recevingAmount=10.00000, recevingCurrency=KRW, bTransactionCount=2, transactionCount=0), TestModel(monthM=July, receiverName=A, receiverC=India, recevingAmount=0.00000, recevingCurrency=KRW, bTransactionCount=0, transactionCount=0))]
Expected Output Result = [FinalTestModel(monthM=May, recevingAmount=0.00000, recevingCurrency=KRW, bTransactionCount=1), FinalTestModel(monthM=June, recevingAmount=10.00000, recevingCurrency=KRW, bTransactionCount=2),FinalTestModel(monthM=July, recevingAmount=10.00000, recevingCurrency=KRW, bTransactionCount=10)]

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Ниже код должен работать

testModels2 =     testModels.parallelStream()
.filter(item -> item.getReceiverPtyId().equalsIgnoreCase("TestId"))
.map(e -> new FinalTestModel(....))
.collect(Collectors.toList());
1 голос
/ 19 апреля 2019

Вы создаете поток атрибутов модели вместо объекта модели.Создание экземпляра FinalTestModel должно решить эту проблему:

testModels2 =     testModels.parallelStream()
    .filter(item -> item.getReceiverPtyId().equalsIgnoreCase("TestId"))
    .map(e -> new FinalTestModel(e.getMonthM(), e.getRecevingAmount(), e.getRecevingCurrency(), e.getBTransactionCount()))
    .collect(Collectors.toList());

flatMap(... Stream.of(new FinalTestModel(...))) будет иметь смысл, если вы хотите построить несколько объектов.Но здесь он только один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...