我正在 jsonschema2pojo 中编写一个自定义注释器,以调整此代码生成器如何使用 Jackson 注释来注释生成的类。
为了简化用例,我手头有一个 JClass,它已经用
JsonInclude( JsonInclude.Include.NON_NULL )
我想将其替换为:
JsonInclude( JsonInclude.Include.NON_EMPTY )
我正在使用 com.sun.codemodel:codemodel:2.6
如果我尝试添加注释而不删除原始注释
JDefinedClass clazz = ...; // the class we want to annotate
clazz.annotate(JsonInclude.class).param( "value", JsonInclude.Include.NON_EMPTY );
然后我收到一个编译错误,说我的模式不能超过一个@JsonInclude。
所以我尝试在添加之前删除注释
JCodeModel codeModel = new JCodeModel();
JClass jsonInclude = codeModel.ref(JsonInclude.class);
clazz.annotations().remove( jsonInclude );
但是注释的集合是不可修改的......
有没有办法从 JDefinedClass 中删除特定的注释?