对于我的项目,我将类转换为json和jackson fasterXml。 现在,我必须在一个位置更改对象的转换方式,以便忽略@JsonIgnore并对该属性进行序列化。Java自定义注释不可见
我发现我可以通过扩展JacksonAnnotationIntrospector和自定义注释来实现。问题是自定义注释只有在与实现类相同的package/project/osgi bundle中定义时才可见,而我想在公开json转换的服务包中定义它。如果注释位于实现包中,我不能在JacksonAnnotationIntrospector中引用它,我需要检查注释的名称。
我有唯一的区别两个相同的注释软件包:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotationName {
}
当我同时设置该实现,我只看到同一封装/项目/ OSGi包作为实现类内从所定义的注释。 有没有这方面的限制或有任何人的想法可能是什么问题?
嗯*我有两个相同的注释* ...为什么你不使用**独特的**名字? – GhostCat
我在两个定义中的一个中添加了2,因此它们是唯一的。我不认为这是JacksonAnnotationIntrospector中的一个问题,因为无论我在哪里调试,我都可以从实现类包中找到注释,并且无法从服务包中找到它。 – user1147747
那么,你是否导入了其他注释?你是否试图用包括包装在内的全名引用它? – RealSkeptic