Optional.ofNullable() 中的空指针异常

Ash*_*tal 1 java optional

我正在尝试将 Optional.OfNullable 方法中的集合转换为字符串,例如:

test.setAbc(Optional.ofNullable(rule.getSampleSet().toString()).orElse(null));
Run Code Online (Sandbox Code Playgroud)

但如果sampleSetnull它会给我一个NullPointerException. 谁能告诉我如何使用.map方法解决这个问题Optional

我知道一种通过事先检查可空性来做到这一点的传统方法:

if(rule.getSampeSet != null)
Run Code Online (Sandbox Code Playgroud)

但我很想知道我们是否可以在一行中完成。

Mur*_*nik 7

您可以选择它,而不是在toString()内部调用:ofNullablemap

test.setAbc(Optional.ofNullable(rule.getSampleSet()).map(Object::toString).orElse(null));
Run Code Online (Sandbox Code Playgroud)