我有一个关于获取自定义注释值的问题,该值是另一个自定义注释的值。例如我有一个
   
    
     @SqlInfo
    
   
   有两个值的注释接口,也是注释接口。
  
  
   
    小精灵
   
  
  @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface SqlInfo {
    CodificationInfo codificationInfo();
    DocumentInfo documentInfo();
}  
  
   
    
     @CodificationInfo
    
   
   和
   
    
     @DocumentInfo
    
   
   也是注释接口。每个人都有自己不同的价值观。
  
  
   
    编码信息.java
   
  
  @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface CodificationInfo {
    enum KEYS {
        DOMAIN,
        FILE,
        TABLE,
        CLASS
    }
    String domain() default "";
    String fileName() default "";
    String table() default "";
    Class codificationClass();
}
  
   当我只使用
   
    
     @编码信息
    
   
   类的批注。我使用以下方法从中获取值:
  
  
   
    注释值getter方法
   
  
  public Object getClassAnnotationValue(Class c, String key) {
    Annotation annotation = c.getAnnotation(CodificationInfo.class);
    return getObjectByKey(annotation, key);
}
private Object getObjectByKey(Annotation annotation, String key) {
    if (annotation instanceof CodificationInfo) {
        if (key.equalsIgnoreCase(CodificationInfo.KEYS.TABLE.toString())) {
            return ((CodificationInfo) annotation).table();
        } else if (key.equalsIgnoreCase(CodificationInfo.KEYS.CLASS.toString())) {
            return ((CodificationInfo) annotation).codificationClass();
        } else if (key.equalsIgnoreCase(CodificationInfo.KEYS.DOMAIN.toString())) {
            return ((CodificationInfo) annotation).domain();
        } else if (key.equalsIgnoreCase(CodificationInfo.KEYS.FILE.toString())) {
            return ((CodificationInfo) annotation).fileName();
        }
    }
    return null;
}  
  
   我想知道如何
   
    
     @编码信息
    
   
   使用时的值
   
    
     @ SqlInfo
    
   
   课堂注释?它意味着——
   
    如何从子批注中获取值?
   
  
  
   
    附注:我知道我可以分别使用这两个注释。但我想知道如何从子注释中获取值。例如hibernate使用它
    
     @AuditOverrides
    
    注释。