5
私はJavaで書かれた注釈プロセッサを使っています。私はコードのいくつかの行を生成するためにJavaPoetを使用しています。私は 'スイッチ'ステートメントを生成する必要があります。JavaPoetによるswitch文の生成
switch(eventType) {
case XMLEvent.START_ELEMENT:
break;
case XMLEvent.END_ELEMENT:
break;
case XMLEvent.CDATA:
case XMLEvent.CHARACTERS:
break;
default:
break;
}
それはjavapoetでswitch文を生成するための唯一の方法であるかbeginControlFlowを使用してより良い方法は、(そこにある次のコードを生成するために
MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder("parseOnXml")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.addParameter(typeName(XmlBinderContext.class), "context")
.addParameter(typeName(XmlWrapperParser.class), "wrapper")
.addParameter(typeName(Integer.TYPE), "currentEventType")
.addJavadoc("create new object instance\n")
.returns(typeName(item.getElement()));
...
methodBuilder.beginControlFlow("switch(eventType)");
methodBuilder.addCode("case $T.START_ELEMENT:\n", XMLEvent.class);
methodBuilder.addStatement("break");
methodBuilder.addCode("case $T.END_ELEMENT:\n", XMLEvent.class);
methodBuilder.addStatement("break");
methodBuilder.addCode("case $T.CDATA:\n", XMLEvent.class);
methodBuilder.addCode("case $T.CHARACTERS:\n", XMLEvent.class);
methodBuilder.addStatement("break");
methodBuilder.addCode("default:\n");
methodBuilder.addStatement("break");
methodBuilder.endControlFlow();
:今、私は次のコードを使用しています)同じコードを生成するには?