java getDeclaredAnnotations没有从注释返回一个属性
java getDeclaredAnnotations没有从注释返回一个属性
步骤:
1)注释存在于动态编译和加载的外部Java类(Carrier.Java)中:
@Facets(xpath = "/Carrier/Carrier_Id", displayString = "Carrier")
private String carrier_Id;
2)注释@Facets具有以下定义:
@Target(value = { ElementType.FIELD, ElementType.METHOD,ElementType.PARAMETER,
ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Facets {
@Target(value = { ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER,
ElementType.TYPE })
@Retention(value = RetentionPolicy.RUNTIME)
public static @interface FacetDefinition {
String xsdAttributeName() default VOID_STRING;
}
@FacetDefinition
String xpath() default VOID_STRING;
@FacetDefinition
String entityName() default VOID_STRING;
3)下面的代码用于从动态加载的类-(Carrier.class)检索注释属性:
Annotation[] annotations = field2.getDeclaredAnnotations();
for(Annotation annotation : annotations){
if(annotation instanceof Facets)
{
Facets myAnnotation = (Facets) annotation;
xpath = myAnnotation.xpath();
displayName = myAnnotation.displayString();
}
4)一个属性-xpath的值返回正确,但第二个属性-displayString始终作为空字符串返回
显示字符串值存在于载波中。类文件:
javap -v Carrier.class
#38 = Utf8 xpath
#39 = Utf8 /Carrier/Carrier_Id
#40 = Utf8 displayString
#41 = Utf8 Carrier
但是getDeclaredAnnotations没有检索此值,而是返回一个空字符串
有人能帮我做这个吗
共 (0) 个答案