AbstractProcessor を使用してカスタム アノテーションを取得するメソッド アノテーションの属性名と値を取得します 属性値の型は AnnotationValue です javapoet AnnotationSpec.Builder(xx) でコードを生成します。AddMember (String name, String format, Object... The args) 間違ったコードを生成しました: method (@ AnnotationName (value = "/" v1 / "/ v2"/")) Method (@annotationname (value= {"v1","v2"})) いくつかの注釈属性タイプがあるため、どの AnnotationValue がどれであるかをどのように判断し、javapoet で正しいコードを生成しますか?
AnnotationSpec.Builder builder = AnnotationSpec.builder(cc);
//Gets the attributes and attribute values of the annotation
//String:Attribute name of the annotation
//Object:(AnnotationVale) Attribute value
Map<String, Object> annoMap = annotationModel.getParams();
if (annoMap != null) {
Set<Map.Entry<String, Object>> set = annoMap.entrySet();
for (Map.Entry<String, Object> m : set) {
String memberName = m.getKey();
Object values = m.getValue();
builder.addMember(memberName, "$S", values);
}
}
javapoet によって現在生成されているエラー コードは次のとおりです。
@RequestMapping( method = "org.springframework.web.bind.annotation.RequestMethod.GET,org.springframework.web.bind.annotation.RequestMethod.POST", value = "\"/api\",\"/ll\"" ) class TestController$ { @RequestMapping( vv = "@com.seal.base.core.annotation.SealVar(\"1111\")", method = "org.springframework.web.bind.annotation.RequestMethod.POST,org.springframework.web.bind.annotation.RequestMethod.GET", name = "name", value = "\"/register\",\"/api\"" )