【发布时间】:2021-12-31 10:25:28
【问题描述】:
我继承了以下 java 代码,它从 properties file 获取 property 的值:
String personName = this.properties.getFilePropertty("person.name");
if (personName != null) {
// do something else
} else {
// do something
}
上述流程中的预期行为是,personName 将从属性文件中检索,或者如果不存在则返回为 null,并进行相应处理。
但是,当该属性不存在时,getFileProperty() 方法中会引发异常(如下所示)。
我怎样才能解决这个问题以获得预期的行为?
getFileProperty():
public String getFileProperty(String name) throws SystemPropertiesException {
return Optional.ofNullable( this.properties.getProperty(name, null) )
.orElseThrow(()->new PropertiesException("Can not get property!"));
}
注意——上面代码中调用的getProperty()方法是java utils getProperty方法。
【问题讨论】:
-
Optional不应用作if语句的替代品。见stackoverflow.com/questions/23454952/uses-for-optional。
标签: java string exception properties optional