我有一个Java类,说Class A已经存在一些方法,我正在使用代码模型说classB
生成一个类,而在使用代码模型进行生成时,我试图将那个{{1 }}。
我在下面尝试过
classA
但是它不起作用,如果有人知道如何做,我将不胜感激
我想生成一个像这样的方法:
method
.body()
.invoke(JExpr.ref(helper), "display")
.arg("hello");
我也对如何生成以下方法感兴趣:
public void method() {
Helper helper = new Helper();
helper.display("hello")
}
答案 0 :(得分:1)
让我们开始:
public void method() {
Helper helper = new Helper();
helper.display("hello")
}
假设您已经拥有一个JMethod method
,则首先需要创建一个helper
实例:
JVar helper = method
.body()
.decl(
codeModel.ref(Helper.class),
"helper",
JExpr._new(codeModel.ref(Helper.class)));
然后只需在其上调用所需的方法:
method
.body()
.invoke(helper, "display")
.arg("hello");
没有这个人
@Test
public void method() {
Assert.fail("message")
}
更容易,您只需要执行静态调用即可。大致情况:
method
.body()
.staticInvoke(codeModel.ref(Assert.class))
.arg("message");
如果您对注释感兴趣:
method
.annotate(Test.class);
请注意,在上面的调用中,我可以将字符串直接传递给arg
方法(arg("message")
)。这只是字符串的一种便捷方法。如果要使用其他类型,例如primitve类型,则需要执行类似JExpr.lit(12.34)
的操作。