0

有人知道如何在 codeModel 中执行数学运算吗?我到处都想不通。我有我生成的类,我想添加 2 个变量(我已经使用 完成了Long.staticInvoke("sum"),但我的意思是添加、减法、乘法、除法和所有这些东西)。我想要实现的示例输出:

class C {
    int a;
    int b;
    C() {
            a=5;
            b=7;
    }
    int foo() {
        return (a+b)/4*7;
    }
}

我有这样的事情:

try {
            String className = "C";
            JCodeModel model = new JCodeModel();
            JDefinedClass jdc = model._class(className);

            JFieldVar a = jdc.field(0, Integer.TYPE, "a");
            JFieldVar b = jdc.field(0, Integer.TYPE, "b");
            JMethod constructor = jdc.constructor(0);
            constructor.body().assign(a, JExpr.lit(5));
            constructor.body().assign(b, JExpr.lit(7));

            JMethod foo = jdc.method(0,Double.TYPE,"foo");
            foo.body()._return(/* WHAT GOES HERE? */);

            File file = new File("./src/types/");
            file.mkdirs();
            model.build(file);
        } catch(Exception e) {
            e.printStackTrace();
        }

有任何想法吗?

4

1 回答 1

0

JOp课程将帮助您。 (a+b)/4*7由以下生成:

JOp.div(JOp.plus(a, b), JOp.mul(JExpr.lit(4), JExpr.lit(7)))
于 2015-12-10T18:16:30.213 回答