我试图使用Optional Java 8,我遇到了一些问题。
我认为通过使用Optional,不再需要进行存在检查。(如果我错了,请纠正我)。所以我做了以下几点:
public Optional<File> ipModeFile(String ipMode) {
File file = new File(ipMode);
if(file.exists()) {
return Optional.of(file);
}
return Optional.empty();
}
然后我像这样使用它:
if(ipV4ModeFile.isPresent()) {
File file = ipV4ModeFile.get();
FileWriter writer;
writer = new FileWriter(file, false); // Unhandled exception type IOException
writer.write(TURNOFF_IPV4);
writer.close();
}
Optional的一个优点是,是否可以省略一些空检查?
答案 0 :(得分:1)
在您的示例中,FileWriter
不是Optional
。即使它是,Option type(也许是一种类型)保护再次NullPointerException
(不是IOException
)。来自Optional
Javadoc,
容器对象,可能包含也可能不包含非null值。如果存在值,则isPresent()将返回true,get()将返回该值。