我为类的方法创建了一个简单的注释。我想以JSON格式导出每个注释的值。
例如,我有一个注释:
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.METHOD )
public @interface MyAnnotation
{
int someInteger();
String someString();
String[] possibleTypes();
}
然后在我的班上,我正在注释:
package com.clusin;
public class foo
{
@MyAnnotation(someInteger = 1, someString = "bar", possibleType = { "a","b","c" })
public int doSomeComputation(Object x, Object y)
{
//Do something here.
}
}
使用反射我们可以在运行时获得对这些注释的引用。
所以我的问题是:鉴于在运行时获得这些注释,是否可以使用jackson序列化注释中包含的值?
我尝试使用@JsonProperty注释我的注释,但是在调用ObjectMapper#writeValueAsString时,ObjectMapper会抛出JsonMappingException。
org.codehaus.jackson.map.JsonMappingException: No serializer found for class $Proxy5 and no properties discovered to cre
ate BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) )
at org.codehaus.jackson.map.ser.StdSerializerProvider$1.failForEmpty(StdSerializerProvider.java:89)
at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:315)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:242)
at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:1846)
at org.codehaus.jackson.map.ObjectMapper.writeValueAsString(ObjectMapper.java:1473)
有什么想法吗?
感谢您的时间。