日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java解析注解

發布時間:2025/3/15 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java解析注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

?

概念

實例


?

概念

通過反射獲取類、函數、或成員上運行時注解信息,從而實現動態控制程序運行的邏輯;

?

實例

如下面的這個Java工程:

源碼如下:

Base.java

package my;public interface Base {public String strValue();public int intValue(); }

Description.java

package my;import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface Description {String DesStrValue();int DesIntValue() default 10086; }

ParseAnn.java

package my;import java.lang.reflect.Method;public class ParseAnn {@SuppressWarnings({ "unchecked", "rawtypes" })public static void main(String[] args) {// 1.使用類加載器加載類try {Class c = Class.forName("my.SubClass");//找到類的注解boolean isExist = c.isAnnotationPresent(Description.class);if(isExist) {//拿到注解實例Description d = (Description)c.getAnnotation(Description.class);System.out.println(d.DesStrValue() + "\t" + d.DesIntValue());//找到注解上的方法Method[] ms = c.getMethods();for(Method m : ms) {boolean isMExist = m.isAnnotationPresent(Description.class);if(isMExist) {Description dm = (Description)m.getAnnotation(Description.class);System.out.println(dm.DesStrValue() + "\t" + dm.DesIntValue());}}}}catch(ClassNotFoundException e) {System.out.println(e.toString());}SubClass subClass = new SubClass();subClass.strValue();} }

SubClass.java

package my;@Description(DesStrValue = "這是一個類") public class SubClass implements Base {@Override@Description(DesStrValue = "SubClass 中的StrValue的")public String strValue() {// TODO Auto-generated method stubSystem.out.println();return null;}@Override@Description(DesStrValue = "SUbClass中intValue的", DesIntValue = 10010)public int intValue() {// TODO Auto-generated method stubreturn 0;} }

程序運行截圖如下:

這里拿到函數上注解的方式有兩種,一個是使用:

Annotation[] as = m.getAnnotations();

一種是使用Description)m.getAnnotation(Description.class);

如上面的代碼所示!

?

?

?

總結

以上是生活随笔為你收集整理的Java解析注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。