Java 中带有 try catch 的最终实体
final Entity with try catch in Java
这是我的代码:
SomeResult result = null;
try {
if(isOK) {
result = service.getOK();
}
} catch (Exception e) {
//logging
}
if(result == null) {
result = service.getKO();
}
return result;
我想使 SomeResult 结果 final 像这样:
final SomeResult result;
一个出口点可以吗?
不要分配给 result
,而是将 result =
替换为 return
。实际上删除 result
.
语义上实际上是一种"finally."
final SomeResult result = getResult();
public SomeResult getResult(){
SomeResult result = null;
try {
if(isOK) {
result = service.getOK();
}
} catch (Exception e) {
//logging
}
if(result == null) {
result = service.getKO();
}
return result;
}
检查此 link 以查看使用方法调用分配的最终变量。 https://ideone.com/UAoBTn
这可以通过 vavr 这样的库来完成,它实现了 Try
monad(即将 try-catch
语句转换为表达式):
public SomeResult getResult() {
final SomeResult result;
result = isOK ? Try.of(service::getOK).getOrElse(service::getKO) : service.getKO();
return result;
}
但是,将值赋给局部变量有什么意义呢?与立即返回一样:
public SomeResult getResult() {
return isOK ? Try.of(service::getOK).getOrElse(service::getKO) : service.getKO();
}
...在这种情况下,您可能更喜欢 ,它不依赖于第三方库。
这是我的代码:
SomeResult result = null;
try {
if(isOK) {
result = service.getOK();
}
} catch (Exception e) {
//logging
}
if(result == null) {
result = service.getKO();
}
return result;
我想使 SomeResult 结果 final 像这样:
final SomeResult result;
一个出口点可以吗?
不要分配给 result
,而是将 result =
替换为 return
。实际上删除 result
.
语义上实际上是一种"finally."
final SomeResult result = getResult();
public SomeResult getResult(){
SomeResult result = null;
try {
if(isOK) {
result = service.getOK();
}
} catch (Exception e) {
//logging
}
if(result == null) {
result = service.getKO();
}
return result;
}
检查此 link 以查看使用方法调用分配的最终变量。 https://ideone.com/UAoBTn
这可以通过 vavr 这样的库来完成,它实现了 Try
monad(即将 try-catch
语句转换为表达式):
public SomeResult getResult() {
final SomeResult result;
result = isOK ? Try.of(service::getOK).getOrElse(service::getKO) : service.getKO();
return result;
}
但是,将值赋给局部变量有什么意义呢?与立即返回一样:
public SomeResult getResult() {
return isOK ? Try.of(service::getOK).getOrElse(service::getKO) : service.getKO();
}
...在这种情况下,您可能更喜欢