我正在使用JExpr.plus()
方法来形成一个字符串,在语法上它是正确的,但它有很多括号。例如:
JExpr.lit("ONE").plus(JExpr.lit("TWO")).plus(JExpr.lit("THREE"))
返回
(("ONE" + "TWO") + "THREE")
我希望它是
"ONE" + "TWO" + "THREE"
我正在使用JExpr.plus()
方法来形成一个字符串,在语法上它是正确的,但它有很多括号。例如:
JExpr.lit("ONE").plus(JExpr.lit("TWO")).plus(JExpr.lit("THREE"))
返回
(("ONE" + "TWO") + "THREE")
我希望它是
"ONE" + "TWO" + "THREE"
看起来现在使用 codemodel 你无法避免添加括号。加号 (+) 被认为是一个 BinaryOp,它使用以下类生成其代码:
内com.sun.codemodel.JOp
:
static private class BinaryOp extends JExpressionImpl {
String op;
JExpression left;
JGenerable right;
BinaryOp(String op, JExpression left, JGenerable right) {
this.left = left;
this.op = op;
this.right = right;
}
public void generate(JFormatter f) {
f.p('(').g(left).p(op).g(right).p(')');
}
}
注意f.p('(')
和.p(')')
。括号的添加已包含在代码中,无法避免。话虽如此,您可以更改 codemodel 来做您需要的事情,因为它是开源的。就个人而言,我不认为有必要,因为括号在其他情况下很有用。