-4
これは何の意味ですか?Java 8のnull値のためのオプション。
Optional.of(someLinkToNull).ifPresent(present -> {
System.out.println(present);
});
はNullpointerExceptionを返します。
オプション(小文字)を使用してnullをチェックする方法の例を挙げてください。
これは何の意味ですか?Java 8のnull値のためのオプション。
Optional.of(someLinkToNull).ifPresent(present -> {
System.out.println(present);
});
はNullpointerExceptionを返します。
オプション(小文字)を使用してnullをチェックする方法の例を挙げてください。
使用ofNullable
staticファクトリメソッドではなく、of
- 後者は値はnull
にすることはできません:
Optional.ofNullable(someLinkToNull).ifPresent(present -> {
System.out.println(present);
});
なお、そのオプションについての学習、通常のユースケースのようなコードを書くために細かいですがNPEを避けるために狂ったように分岐しないようにすることもできます。あなたのケースでは、(コメントに記載されている4castle
のように)十分なはずの単純なヌルチェック。
Optional.ofNullable(order)
.map(Order::getCharges)
.flatMap(charges -> charges.stream().filter(ChargeFilters::isFee).findFirst())
.map(Fee::getIssuer)
.map(PaymentIssuer::getAddress)
.map(Address::getStreet)
[...]
いくつかの物事が間違ってここに行くかもしれません:たとえばこのコードの意味のない作品を考えてみましょう
上記のように、オプションの流暢なものの代わりに、少なくとも4つのヌルチェックが既にあります。
'ofNullable'を使うと、' of'は値をnullにすることができません – mszymborski
これは 'Optional'の良いユースケースです。不要なオブジェクトを作成し、コードを難読化します。ちょうど 'if(someLinkToNull!= null){...}' – 4castle
Admins、delete、please、この質問。 – Arthur