Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可选.ofNullable()中的Null指针异常_Java_Optional - Fatal编程技术网

Java 可选.ofNullable()中的Null指针异常

Java 可选.ofNullable()中的Null指针异常,java,optional,Java,Optional,我正在尝试将集合转换为Optional.OfNullable方法中的字符串,如: test.setAbc(Optional.ofNullable(rule.getSampleSet().toString()).orElse(null)); 但如果sampleSet为null,它将给我一个NullPointerException。 谁能告诉我如何使用带有可选项的.map方法解决此问题 我知道一种传统的方法是事先检查可空性: if(rule.getSampeSet != null) 但是我很想知

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

test.setAbc(Optional.ofNullable(rule.getSampleSet().toString()).orElse(null));
但如果sampleSet为null,它将给我一个NullPointerException。 谁能告诉我如何使用带有可选项的.map方法解决此问题

我知道一种传统的方法是事先检查可空性:

if(rule.getSampeSet != null)
但是我很想知道我们是否可以在一行中完成它。

您可以将可选项映射到它,而不是在ofNullable中调用toString:

test.setAbc(Optional.ofNullable(rule.getSampleSet()).map(Object::toString).orElse(null));
您可以将可选项映射到ofNullable,而不是在ofNullable中调用toString:

test.setAbc(Optional.ofNullable(rule.getSampleSet()).map(Object::toString).orElse(null));

这回答了你的问题吗?规则可能为空吗?不,规则不能为空。我已经检查了它的空值,然后只调用了rule.getSampleSetName。这是否回答了您的问题?规则可能为空吗?不,规则不能为空。我已经检查过它的空值,然后只调用rule.getSampleSetI我不知道丑陋,但作为一种风格,我宁愿做可选的。ofNullable……ifPresenttest::setAbc。我不反对任何映射调用。但是,从风格上讲,我宁愿只在定义了可选项的情况下调用setAbc,而不是在任何情况下也会导致使用orElse。我可能没有说清楚?我不知道丑陋,但作为一个风格问题,我宁愿做可选的。当然……ifPresenttest::setAbc。我不反对任何地图调用。但是,从风格上讲,我宁愿只在定义了可选项的情况下调用setAbc,而不是在任何情况下也会导致使用orElse。我可能没说清楚?