gpt4 book ai didi

java - 如何使用 CodeModel 的 JExpr.plus 方法删除不必要的括号?

转载 作者:太空宇宙 更新时间:2023-11-04 08:00:10 25 4
gpt4 key购买 nike

我正在使用 JExpr.plus() 方法来形成一个字符串,从语法上讲它是正确的,但它有很多括号。例如:

JExpr.lit("ONE").plus(JExpr.lit("TWO")).plus(JExpr.lit("THREE"))

返回

(("ONE" + "TWO") + "THREE")

我希望它是

"ONE" + "TWO" + "THREE"

最佳答案

看起来现在使用代码模型你无法避免添加括号。加号 (+) 被视为 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(')')。添加括号已融入到代码中,无法避免。话虽如此,您可以更改代码模型来完成您需要的操作,因为它是开源的。就我个人而言,我认为没有必要,因为括号在其他情况下很有用。

关于java - 如何使用 CodeModel 的 JExpr.plus 方法删除不必要的括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com