【发布时间】:2021-10-02 10:54:39
【问题描述】:
给定以下 java 代码。
private PersonEntity bezP(int id, BezEntity fEntity) {
PersonEntity personB = fEntity.getPersonB();
if (NP == id) {
return personB instanceof NpEntity ? personB : null;
}
return personB instanceof JpEntity ? personB : null;
}
似乎逻辑有点重复......但每次尝试重构它,确实导致或多或少相同的复杂性......
我玩弄了一些Optionals 表达式...但是是的...我可以尝试什么?
【问题讨论】:
-
你可以有一个单一的回报声明
return (personB instanceof NpEntity || personB instanceof JpEntity) ? personB : null; -
但这实际上并不完全相同......
-
老实说,我怀疑你能不能让它变得更干净。值得指出的是,这不是一种常见的做法,这可能是它没有更短语法的原因之一。
-
return (NP == id? personB instanceof NpEntity: personB instanceof JpEntity)? personB: null;
标签: java optional conditional-operator instanceof