クラスとメソッドがすでに定義されていると仮定します。
条件 if/else ステートメントを記述するには、クラスで メソッド_if()
と_else()
メソッドを使用する必要があります。JBody
これにより、定義したメソッドの本体にステートメントが追加されます。_then()
これらのメソッドから、 のメソッドを呼び出す_if()
か_else()
、 を直接返すことで、これらのメソッドを参照してボディに追加できますJBody
。次に例を示します。
JConditional condition = body._if(input.lt(JExpr.lit(42)));
condition._then().add(
codeModel.ref(System.class).staticRef("out").invoke("println").arg(JExpr.lit("hello")));
condition._else().add(
codeModel.ref(System.class).staticRef("out").invoke("println").arg(JExpr.lit("world")));
出力:
if (input< 42) {
System.out.println("hello");
} else {
System.out.println("world");
}
for ループを作成するには、いくつかのオプションがあります。従来の for ループは_for()
、JBlock の method を使用して記述されます。これにより、 for ループ宣言のさまざまな部分に対応する、 init()
、test()
およびメソッドをチェーンできます。update()
JForLoop forLoop = body._for();
JVar ivar = forLoop.init(codeModel.INT, "i", JExpr.lit(0));
forLoop.test(ivar.lt(JExpr.lit(42)));
forLoop.update(ivar.assignPlus(JExpr.lit(1)));
forLoop.body().add(
codeModel.ref(System.class).staticRef("out").invoke("println").arg(ivar));
出力:
for (int i = 0; (i< 42); i += 1) {
System.out.println(i);
}
キックのために、ここに実例があります: https://gist.github.com/johncarl81/7647146