當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java AnnotatedElement getDeclaredAnnotation()用法及代碼示例


java.lang.reflect.AnnotatedElement接口的getDeclaredAnnotation()方法用於獲取指定聲明注釋類型的聲明注釋,如果實現此接口的類中存在這樣的聲明注釋。該方法以對象的形式返回該類。

用法:

public T getDeclaredAnnotation(Class<T> declared annotationClass)

參數:此方法接受一個聲明的注釋類型的參數,該參數是要獲取的聲明注釋的類型。


返回值:此方法返回實現此接口的已聲明注釋類的指定對象。

異常:該方法拋出:

  • NullPointerException :如果給定的聲明注釋類為null。

下麵的程序演示了getDeclaredAnnotation()方法。

範例1:

// Java program to demonstrate 
// getDeclaredAnnotation() method 
  
import java.util.*; 
import java.lang.annotation.*; 
import java.lang.reflect.*; 
  
// create a custom DeclaredAnnotation 
@Retention(RetentionPolicy.RUNTIME) 
@interface DeclaredAnnotation { 
  
    // This declared annotation has two attributes. 
    public String key(); 
  
    public String value(); 
} 
  
// call DeclaredAnnotation for method 
// and pass values for declared annotation 
@DeclaredAnnotation(key = "GFG", value = "GeeksForGeeks") 
public class Test { 
  
    public Object obj; 
  
    public static void main(String[] args) 
        throws ClassNotFoundException 
    { 
  
        // returns the Class object 
        // for this myAnnotatedElement 
        AnnotatedElement myAnnotatedElement 
            = Test.class; 
  
        System.out.println( 
            "AnnotatedElement represented"
            + " by myAnnotatedElement:"
            + myAnnotatedElement.toString()); 
  
        // Get the declared annotation 
        // using getDeclaredAnnotation() method 
        System.out.println( 
            "DeclaredAnnotation of myAnnotatedElement:"
            + myAnnotatedElement 
                  .getDeclaredAnnotation( 
                      DeclaredAnnotation.class)); 
    } 
}
輸出:

AnnotatedElement represented by myAnnotatedElement:class Test
DeclaredAnnotation of myAnnotatedElement:@DeclaredAnnotation(key=GFG, value=GeeksForGeeks)

範例2:

// Java program to demonstrate 
// getDeclaredAnnotation() method 
  
import java.util.*; 
import java.lang.annotation.*; 
import java.lang.reflect.*; 
  
@Deprecated
public class Test { 
  
    public Object obj; 
  
    public static void main(String[] args) 
        throws ClassNotFoundException 
    { 
        try { 
  
            // returns the Class object 
            // for this myAnnotatedElement 
            AnnotatedElement myAnnotatedElement 
                = Test.class; 
  
            System.out.println( 
                "AnnotatedElement represented"
                + " by myAnnotatedElement:"
                + myAnnotatedElement.toString()); 
  
            // Get the declared annotation 
            // using getDeclaredAnnotation() method 
            System.out.println( 
                "DeclaredAnnotation of myAnnotatedElement:"
                + myAnnotatedElement 
                      .getDeclaredAnnotation( 
                          Deprecated.class)); 
        } 
        catch (Exception e) { 
            System.out.println(e); 
        } 
    } 
}
輸出:

AnnotatedElement represented by myAnnotatedElement:class Test
DeclaredAnnotation of myAnnotatedElement:@java.lang.Deprecated()

參考: https://docs.oracle.com/javase/9/docs/api/java/lang/reflect/AnnotatedElement.html#getDeclaredAnnotation-java.lang.Class-



相關用法


注:本文由純淨天空篩選整理自guptayashgupta53大神的英文原創作品 AnnotatedElement getDeclaredAnnotation() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。