我想将 if - else 语句重构为三元运算符。
if ((variable) == null) {
... do something
} else {
... do something else
}
使用 Codemodel 创建三元运算符非常简单,与 JOp.cond() 一样,我们可以传入条件、ifTrue 和 ifFalse 参数以返回三元语句。
我的问题是将 JExpression 添加到方法主体(JBlock)中:
private void printSomeObject(final JMethod toStringMethod, FieldOutline fo) {
String property = fo.getPropertyInfo().getName(false);
JBlock block = toStringMethod.body();
JExpression cond = JExpr.direct(property).eq(JExpr._null());
JExpression ifTrue = JExpr.direct("... do something");
JExpression ifFalse = JExpr.direct("... do something else");
JExpression ternary = JOp.cond(cond, ifTrue, ifFalse);
// toStringMethod.body().add(generateBody(ternary)); ONLY WORKS WITH JSTATEMENT
...
}
有人知道如何将 JExpression 添加到 JBlock 吗?