有人知道如何在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();
}
任何想法?
答案 0 :(得分:0)
JOp
课程将帮助你。 (a+b)/4*7
由以下内容生成:
JOp.div(JOp.plus(a, b), JOp.mul(JExpr.lit(4), JExpr.lit(7)))