Java sun CodeModel数学运算

时间:2015-12-09 15:54:24

标签: java sun-codemodel

有人知道如何在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();
        }

任何想法?

1 个答案:

答案 0 :(得分:0)

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

JOp.div(JOp.plus(a, b), JOp.mul(JExpr.lit(4), JExpr.lit(7)))