簡單介紹如何通過註解獲取反射的值
簡單說明
可以利用反射獲取註解中的值,通過反射可以獲取一個類的Class物件,通過該物件可以獲取註解,獲取到對應的註解後,就可以獲取註解中的值,具體程式碼實現如下:
public class AnnotationDemo {
public static void main(String[] args) throws NoSuchFieldException {
// 獲取類的Class物件
Class clazz = Demo.class;
// 獲取類上的註解
CustomerAnnotation classAnnotation =
(CustomerAnnotation) clazz.getAnnotation(CustomerAnnotation.class);
// 獲取註解上的值
String classValue = classAnnotation.value();
String[] classDesc = classAnnotation.desc();
System.out.println("類上註解的值 value=" + classValue +
" desc=" + Arrays.toString(classDesc));
// 獲取屬性
Field field = clazz.getDeclaredField("name");
// 獲取屬性上的註解
CustomerAnnotation fieldAnnotation =
(CustomerAnnotation) field.getAnnotation(CustomerAnnotation.class);
// 獲取註解上的值
String fieldValue = fieldAnnotation.value();
String[] fieldDesc = fieldAnnotation.desc();
System.out.println("類上註解的值 value=" + fieldValue +
" desc=" + Arrays.toString(fieldDesc));
}
}
@CustomerAnnotation(value = "classValue")
class Demo {
@CustomerAnnotation(value = "fieldValue",desc = {"desc1","desc2"})
private String name;
}
@Target({ElementType.TYPE, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@interface CustomerAnnotation {
String value();
String[] desc() default "defaultValue";
}
注:不理解註解和反射的可以看以下兩篇文章:
1.簡單介紹Java中的註解
2.簡單介紹java中的反射
相關文章
- java註解的簡單介紹Java
- 如何通過WinDbg獲取方法引數值
- 通過反射獲取私有內部類物件反射物件
- Caffeine快取的簡單介紹快取
- HTML5獲取圖片的原始高度簡單介紹HTML
- select通過onchange獲取每次改變的值
- SpringBoot通過@ConfigurationProperties註解和@Value讀取資原始檔中的值Spring Boot
- 簡單介紹C#獲取攝像頭拍照顯示影像的方法C#
- 為什麼獲取不到@Value註解值?
- Java反射動態修改註解的值Java反射
- 超簡單獲取快應用摘要值
- @TransientSink註解 的介紹
- 通過反射獲取上傳檔案方法引數中的檔名反射
- 如何通過反射(Reflection)+註解(Attribute)來實現陣列轉化為物件反射陣列物件
- EAV(實體-屬性-值)模型簡單介紹模型
- AOP的簡單介紹
- Webpack 的簡單介紹Web
- 簡單介紹Lua中的變數與賦值方法變數賦值
- org.reflections 介面通過反射獲取實現類原始碼研究反射原始碼
- 介面測試中獲取的 token 值如何通過 des3 加密輸出S3加密
- SpringMvc的常用註解介紹SpringMVC
- 註解的詳細介紹
- form表單的簡單介紹ORM
- Java如何快速獲取類附帶的註解Java
- Flownet 介紹 及光流的簡單介紹
- C#通過反射獲取類中的方法和引數個數,反射呼叫方法帶引數C#反射
- Map簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- ActiveMQ簡單介紹MQ
- JSON簡單介紹JSON
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML