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