1

メソッドを使用JExpr.plus()して文字列を形成していますが、構文的には正しいですが、括弧がたくさんあります。例えば:

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

戻り値

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

そして、私はそれが欲しい

"ONE" + "TWO" + "THREE"
4

1 に答える 1

1

現在、コードモデルでは、括弧の追加を避けることができないようです。プラス (+) は、次のクラスでコードを生成する 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(')')。括弧の追加はコードに組み込まれており、避けることはできません。それはオープンソースであるため、コードモデルを変更して必要なことを行うことができると言われています。個人的には、かっこは他の状況で役立つため、その必要性はわかりません。

于 2013-04-11T21:20:24.090 に答える