回答編集履歴
1
動作を間違えていたので修正
answer
CHANGED
@@ -1,20 +1,18 @@
|
|
1
|
-
せっかくなら、
|
1
|
+
せっかくなら、Optionalの特性をもっと活かしましょう。
|
2
|
-
Optionalに中身があるかどうかのチェックも、わざわざ中身を取り出すことも
|
2
|
+
Optionalに中身があるかどうかのチェックも、わざわざ中身を取り出すこともせずに比較できます。
|
3
|
-
することなく比較できます。
|
4
3
|
(InvoiceNumberをequals比較できるようにしておくと楽かと思われます)
|
5
4
|
```java
|
6
5
|
ItemEntityResult = ItemEntitys.stream()
|
7
|
-
.
|
6
|
+
.filter(i -> i.getInvoiceNumberOptional()
|
8
7
|
.filter(x -> x.equals(ItemFilterCondition.getInvoiceNumber()))
|
9
|
-
.
|
8
|
+
.isPresent())
|
10
|
-
.filter(x -> x != null)
|
11
9
|
.collect(Collectors.toList());
|
12
10
|
```
|
13
|
-
|
11
|
+
あるいは、検索項目の方をOptionalに入れてしまうという手もあると思います。
|
12
|
+
(先と同じく、InvoiceNumberをequals比較できること前提)
|
14
13
|
```java
|
15
14
|
ItemEntityResult = ItemEntitys.stream()
|
16
|
-
.
|
15
|
+
.filter(i -> i.getInvoiceNumberOptional()
|
17
|
-
.
|
16
|
+
.equals(Optional.ofNullable(ItemFilterCondition.getInvoiceNumber())))
|
18
|
-
.stream())
|
19
17
|
.collect(Collectors.toList());
|
20
18
|
```
|