精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java注解和反射,你學會了嗎?

開發 前端
注解(Annotation)是JDK5引入的一種代碼輔助工具,其核心作用是對類、方法、變量、參數和包進行標注,通過反射來訪問這些標注信息,以此在運行時改變所注解對象的行為,Java中的注解由內置注解和元注解組成。

注解

注解(Annotation)是JDK5引入的一種代碼輔助工具,其核心作用是對類、方法、變量、參數和包進行標注,通過反射來訪問這些標注信息,以此在運行時改變所注解對象的行為,Java中的注解由內置注解和元注解組成。

注解與注釋

  • Java注解又稱之為Java標注,是JDK5開始支持加入源代碼的特殊語法元數據
  • 普通的注釋在編譯后的class文件中是不存在的,而注解附加的信息則根據需要可以保存到class文件中,甚至運行期加載的class對象中

元注解介紹

創建注解

public @interface [AnnotationName]{}

元注解(描述注解的一種方式)

1.@Retention 定義注解的生命周期(source、class、runtime)
2.@Documented 文檔注解,會被javadoc工具文檔化
3.@Inherited 是否讓子類繼承該注解
4.@Target 描述注解的應用范圍,可選內容如下所示:

  • TYPE:可以用來修飾類、接口、注解類型或枚舉類型
  • PACKAGE:可以用來修飾包
  • PARAMETER:可以用來修飾參數
  • ANNOTATION_TYPE:可以用來修飾注解類型
  • METHOD:可以用來修飾屬性
  • FIELD:可以用來修飾屬性(包括枚舉常量)
  • CONSTRUCTOR:可以用來修飾構造器
  • LOCAL_VARIABLE:可以用來修飾局部變量

創建使用注解示例

注解的創建方式:

  1. 配置元注解,由元注解來聲明當前注解的作為范圍和聲明周期。
  2. 注解中如果需要添加信息,可以用以上方式添加。
  3. 注解信息支持java的基本數據結構。

1.創建注解 @Study

@Target({ElementType.FIELD, ElementType.TYPE}) // 元注解,定義注解的修飾范圍,可以設置多個
@Retention(RetentionPolicy.RUNTIME) // 元注解,定義注解的聲明周期
public @interface Study { // 注解內容可以設置值,也可以不設置值

    // 其中的屬性是支持JAVA的八大屬性的 byte、short、int、long、float、double、boolean、char
    // 如果屬性為value,那么使用時,賦值可以不寫 "value ="

    String name() default "Neco Deng"; // 表示定義了一個name屬性,并且設置了默認值為Neco Deng

    String[] mores(); // 表示定義了一個名字為mores的字符串數組屬性,并且沒有默認值,即該屬性需要顯示定義
}

2.使用注解

@Study(mores = {"first", "second"}) // 在類上使用注解,這里必須定義mores, 不然會報錯
public class Person {

    private int id;

    @Study(mores = {"first", "second"}) // 在屬性上使用注解,這里必須定義mores, 不然會報錯
    private String name;

}

反射

反射(Reflection):在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為Java語言的反射。

反射的優缺點

  • 通過反射可以使程序代碼訪問裝載到JVM中的類的內部信息,獲取已裝載類的屬性信息,獲取已裝載類的方法,獲取已裝載類的構造方法信息。
  • 反射提供了JAVA程序的靈活性和擴展性,降低耦合性,提高自適應能力。
  • 反射會對性能造成一定的影響,同時讓代碼的可讀性變低。

常用的反射API

方法名

返回值

參數描述

Class.forName()

獲取類的元信息

當前類文件的具體位置

clazz.getClass()

獲取類的元信息

clazz.getDeclaredFields()

獲取當前類中的所有屬性

當前類文件的具體位置

setAccessible(true)

設置當前屬性為可見

true或false

getMethods()

獲取類所有方法

invoke(obj)

通過反射執行方法

類的元信息

getAnnotation(class)

獲取注解

需要獲取到額注解的Class

例子

public class ReflectionDemo {


    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException,
            InstantiationException, NoSuchMethodException, InvocationTargetException {
        // 實例1:通過反射獲取到Class元信息
        Person person = new Person();
        Class<? extends Person> aClass1 = person.getClass(); // 通過getClass獲取元信息
        Class<?> aClass2 = Class.forName("com.model.Person"); // 通過forName獲取元信息

        // 實例2:通過反射獲取類名,包名
        String name = aClass1.getName(); // 全路徑類名 > cn.lazyfennec.model.Person
        String simpleName = aClass1.getSimpleName(); // 不包含路徑 > Person
        Package aPackage = aClass1.getPackage(); // 包名 > package cn.lazyfennec.model
        System.out.println(name);
        System.out.println(simpleName);
        System.out.println(aPackage);
        System.out.println("===============================");

        // 實例3:獲取類屬性
        Field[] declaredFields = aClass1.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            System.out.println(declaredField);
        }

        // 實例4:獲取類屬性的具體的值
        person.setId(1);
        person.setName("Neco");
        for (Field declaredField : declaredFields) {
            declaredField.setAccessible(true); // 設置屬性可見可訪問,處理私有屬性無法訪問的問題
            System.out.println(declaredField.get(person));
        }

        // 實例4的另一種寫法,只是簡單的寫法,可以進行優化
        Object obj = aClass1.newInstance(); // 實例化一個新的對象, 相當于反射中的實例化
        declaredFields = obj.getClass().getDeclaredFields();
        for (Field declaredField : declaredFields) {
            declaredField.setAccessible(true);
            if (declaredField.getName().equals("name")) {
                declaredField.set(obj, "Neco");
            } else {
                declaredField.set(obj, 1);
            }
            System.out.println(declaredField.get(obj));
        }

        // 實例5:反射獲取當前類的方法
        Method[] methods = aClass1.getMethods();
        for (Method method : methods) {
            System.out.println(method.getName());
        }
        Method method = aClass1.getMethod("getString");
        Object invoke = method.invoke(obj);
        System.out.println(invoke);

        // 實例6:反射獲得注解
        Study study = aClass1.getAnnotation(Study.class); // 從類中獲取注解
        System.out.println(study);
        String[] mores = study.mores();
        String name1 = study.name();
        System.out.println("name: " + name1 + " mores: " + mores);
        // 從方法上獲取注解
        methods = aClass1.getDeclaredMethods();
        for (Method method1 : methods) {
            Study annotation = method1.getAnnotation(Study.class);
            if (annotation == null) continue;
            String name2 = annotation.name();
            String[] mores1 = annotation.mores();
            System.out.println("name: " + name2 + " mores: " + mores1);
        }
        // 從屬性上獲取注解
        declaredFields = aClass1.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            Study annotation = declaredField.getAnnotation(Study.class);
            if (annotation == null) continue;
            String annotationName = annotation.name();
            String[] annotationMores = annotation.mores();
            System.out.println("name: " + annotationName + " mores: " + annotationMores);
        }
    }
}

參考

https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/index.html

責任編輯:武曉燕 來源: 沐雨花飛蝶
相關推薦

2024-11-08 08:56:01

2024-01-19 08:25:38

死鎖Java通信

2022-08-29 08:05:44

Go類型JSON

2022-12-22 08:14:54

2024-10-09 07:40:43

2024-04-28 08:24:27

分布式架構Istio

2023-07-26 13:11:21

ChatGPT平臺工具

2024-02-04 00:00:00

Effect數據組件

2023-01-10 08:43:15

定義DDD架構

2023-07-10 08:36:21

工具pptword

2022-09-26 11:03:25

Java反射漏洞

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發編程

2023-01-28 09:50:17

java多線程代碼

2023-01-30 09:01:54

圖表指南圖形化

2022-07-08 09:27:48

CSSIFC模型

2024-08-06 09:47:57

2023-10-10 11:04:11

Rust難點內存

2024-07-31 08:39:45

Git命令暫存區

2023-12-12 08:02:10

點贊
收藏

51CTO技術棧公眾號

国产图片一区| 成人av福利| 三级亚洲高清视频| 日韩三级影视基地| 国产黄色一区二区三区| 草草在线视频| 国产精品久久久久婷婷二区次| 亚洲专区在线视频| 国产婷婷色一区二区在线观看 | 欧美性大战久久久久久久| 亚洲一区精彩视频| 五月婷婷丁香六月| 久久精品国产秦先生| 国内精品久久久久影院优| 非洲一级黄色片| 91久久偷偷做嫩草影院电| 在线日韩一区二区| 成人网站免费观看入口| 浪潮av一区| 久久精子c满五个校花| 99视频在线播放| 一级黄色片免费看| 乱码第一页成人| 欧美激情久久久久| 亚洲 欧美 变态 另类 综合| 西瓜成人精品人成网站| 日韩午夜在线观看| 亚洲欧美偷拍另类| 台湾佬中文娱乐久久久| 午夜亚洲福利老司机| 特级黄色录像片| 在线a免费看| 久久久亚洲高清| 国产一区国产精品| 亚洲美女福利视频| 经典三级在线一区| 国产精品三级在线| 国产精品无码粉嫩小泬| 亚洲欧美日韩视频二区| 97精品在线观看| 精品午夜福利视频| 国产精品a久久久久| 精品国产区一区二区三区在线观看| 国产精九九网站漫画| 国产日本亚洲| 在线综合亚洲欧美在线视频| 在线观看亚洲色图| 久久爱.com| 欧美色老头old∨ideo| 成人午夜视频免费在线观看| 日产福利视频在线观看| 黄色成人av在线| 欧美日韩成人免费视频| jizzjizz中国精品麻豆| 亚洲国产三级在线| 青草青青在线视频| 欧美男男tv网站在线播放| 婷婷成人综合网| 激情伊人五月天| sm性调教片在线观看| 精品久久久久久国产| 天天夜碰日日摸日日澡性色av| 福利成人导航| 婷婷综合五月天| 国产在线青青草| 性欧美videohd高精| 欧美亚洲国产bt| 日本美女视频一区| 欧美黄色一级| 亚洲第一福利网| 日本黄色网址大全| 成人高清电影网站| 日韩视频精品在线| 中文乱码字幕高清一区二区| 天天射综合网视频| 韩剧1988免费观看全集| 少妇高潮av久久久久久| 蜜桃视频一区二区| 91精品免费| 日韩在线观看视频网站| 久久伊99综合婷婷久久伊| 涩涩涩999| 永久免费网站在线| 精品动漫一区二区| 日韩大片一区二区| 日韩精品三级| 亚洲欧洲av一区二区| 情侣偷拍对白清晰饥渴难耐| 精品91视频| 国产精品pans私拍| hs视频在线观看| 91在线视频播放地址| 亚洲欧洲精品一区二区| 青草视频在线免费直播| 欧美日韩在线另类| 亚洲一二三av| 日韩精品丝袜美腿| 久久久www成人免费精品| 日韩视频免费观看高清| 奇米精品一区二区三区四区| av成人观看| yw193.com尤物在线| 夜夜嗨av一区二区三区中文字幕| 久草资源站在线观看| 国内精品视频| 国产亚洲欧美aaaa| 日本少妇裸体做爰| 国产一区三区三区| 麻豆成人小视频| 菠萝蜜视频国产在线播放| 欧美日韩亚洲激情| 日韩大尺度视频| 日韩理论在线| 欧美专区日韩视频| 黄色av小说在线观看| 久久精品一区二区三区四区| 欧美性猛交内射兽交老熟妇| 91久久久久久白丝白浆欲热蜜臀| 欧美精品一区二区三区蜜桃视频 | 黄色小视频免费观看| 国产日产欧美精品一区二区三区| 成人免费在线视频播放| 日韩国产大片| 亚洲人成在线观看| 久久99精品波多结衣一区| 国产精品1区二区.| 亚洲人成网站在线播放2019| 亚洲精品成人图区| 亚洲国产精品久久| 欧美精品videos极品| 久久66热偷产精品| 亚洲精品一区二区三| 另类激情视频| 亚洲免费电影在线观看| 国产做受高潮漫动| 国产成a人无v码亚洲福利| 日本黄色a视频| 成人在线免费av| 亚洲视频在线观看| 免费观看日批视频| 久久久影视传媒| 一本色道无码道dvd在线观看| 久久久久观看| 91精品国产高清久久久久久| 蜜臀av在线观看| 亚洲综合清纯丝袜自拍| 九九九久久久久久久| 99热在线成人| 91久久久在线| 26uuu亚洲电影在线观看| 欧美一区二区免费视频| 玖玖爱这里只有精品| 国产真实乱对白精彩久久| 欧美亚洲视频一区| 久久伦理中文字幕| 欧美另类极品videosbest最新版本| 91精品视频免费在线观看 | 成人做爰视频网站| 久久国产综合精品| 日日噜噜噜夜夜爽爽| 欧美一级片网址| 欧美福利视频网站| 色一情一乱一乱一区91av| 精品国产1区2区| 中文字幕免费高清| 欧美aaa在线| 影音先锋男人的网站| 最新国产一区二区| 欧美亚洲一级片| 国产三级电影在线| 在线播放91灌醉迷j高跟美女| 日本黄色片免费观看| 成人午夜电影久久影院| 北条麻妃69av| 91综合久久一区二区| 91久久大香伊蕉在人线| 国产乱码午夜在线视频| 亚洲视频视频在线| a天堂视频在线| 精品女厕一区二区三区| 国产三级在线观看完整版| 激情五月婷婷综合网| 国产免费一区二区视频| 一区二区美女| 成人伊人精品色xxxx视频| 欧美人体视频xxxxx| 亚洲人成在线观| av无码精品一区二区三区宅噜噜| 午夜影视日本亚洲欧洲精品| 国产伦理片在线观看| 国产乱码精品一区二区三区五月婷| 国产一线二线三线女| 国产精品羞羞答答在线观看| 91香蕉电影院| 性孕妇free特大另类| 久久久精品影院| 亚州男人的天堂| 在线播放中文一区| 欧美日韩一二三四区| 亚洲视频一二三区| 一区二区黄色片| 国产福利精品导航| 四季av一区二区| 亚洲三级电影在线观看| 亚洲图片欧洲图片日韩av| 久久aimee| 亚洲一区二区三区四区在线播放 | 粗大的内捧猛烈进出视频| 国产免费成人| 日本人妻伦在线中文字幕| 国产在线日韩精品| 国产一区二区不卡视频| 亚洲色图图片| 国产精品精品久久久| 97超碰在线免费| 欧美精品免费看| 午夜毛片在线| 国产亚洲美女精品久久久| 无码精品人妻一区二区| 91精品婷婷国产综合久久性色 | 日本在线视频中文有码| 中文字幕精品久久久久| 人成在线免费视频| 亚洲国产成人精品电影| 国产女人18毛片水18精| 欧美在线观看18| 免费黄色网址在线| 午夜私人影院久久久久| 精品一区二区三区人妻| 亚洲日本在线a| 激情五月深爱五月| 国产丝袜在线精品| 第一次破处视频| 久久久久久久综合| 大地资源二中文在线影视观看| 成人免费毛片嘿嘿连载视频| 国产精品偷伦视频免费观看了| 精品亚洲免费视频| 免费成年人高清视频| 免费xxxx性欧美18vr| 妺妺窝人体色www在线观看| 亚洲制服少妇| 日韩 欧美 高清| 久久永久免费| 国产裸体免费无遮挡| 久久精品亚洲| 国产视频在线视频| 日本不卡不码高清免费观看| 无人在线观看的免费高清视频| 久久九九精品| 男人女人黄一级| 麻豆国产精品官网| 亚洲欧美日韩综合网| 九九在线精品视频| 成人性生交视频免费观看| 国产精品夜夜嗨| 在线免费黄色网| 国产精品一区一区| 国产a级黄色片| 99re6这里只有精品视频在线观看| 久久久久成人精品无码中文字幕| 99视频精品在线| 久久成人激情视频| 国产精品欧美极品| 欧美一区免费观看| 亚洲成人在线观看视频| 国产又大又黄视频| 在线观看视频一区二区欧美日韩| 又骚又黄的视频| 欧美一区二区免费视频| 日本精品一区二区在线观看| 日韩精品一区二区视频| av电影在线观看| 久久天天躁狠狠躁夜夜躁| 性欧美ⅴideo另类hd| 97久久精品国产| 亚洲精品一区| 91久久久国产精品| 欧美美女啪啪| 亚洲自拍三区| 亚洲精品裸体| 最新中文字幕免费视频| 国产成人一级电影| 成人片黄网站色大片免费毛片| 亚洲欧美一区二区三区久本道91 | 国产精品剧情| 96精品视频在线| 久久影视精品| 国产一级二级三级精品| 奇米影视亚洲| 男女视频网站在线观看| 蜜桃视频在线一区| 日本黄色动态图| 国产精品国产三级国产普通话蜜臀| 免费无遮挡无码永久在线观看视频 | 日本午夜一区二区| 人妻精品久久久久中文字幕69| 91色综合久久久久婷婷| av最新在线观看| 欧美性高潮在线| 国产夫妻自拍av| 国产亚洲视频中文字幕视频| 成人性生交大片免费看网站| 国产精品青草久久久久福利99| 99久久免费精品国产72精品九九| 日韩国产伦理| 野花国产精品入口| 亚洲理论中文字幕| 久久久久一区二区三区四区| 国产免费无码一区二区视频| 欧美亚洲愉拍一区二区| 天堂在线资源网| 成年无码av片在线| 成人一级视频| 色播亚洲婷婷| 久久青草久久| 李丽珍裸体午夜理伦片| 1024成人网色www| 久久久久久无码精品大片| 亚洲成人av片| 亚洲精品一线| 成人午夜在线观看| 日韩欧美网址| 国产理论在线播放| 久久先锋影音av鲁色资源网| 精品午夜福利视频| 日韩一区二区高清| 久草中文在线| 成人黄色在线免费| 久久国产亚洲精品| 天天操天天摸天天爽| 久久久美女毛片| 你懂的国产在线| 亚洲精选中文字幕| 欧洲一区精品| 免费成人看片网址| 校园春色综合网| 亚洲天堂成人av| 欧美日韩亚洲成人| 四虎精品在线| 26uuu日韩精品一区二区| 久草在线综合| 成人免费观看视频在线观看| 91网站在线观看视频| 青青国产在线观看| 亚洲精品自拍偷拍| 性感美女一区二区在线观看| 农村寡妇一区二区三区| 先锋影音久久久| 丰满圆润老女人hd| 欧美伊人久久大香线蕉综合69| 成人性爱视频在线观看| 国产精品久久久久久久久借妻| 国产欧美高清视频在线| 91视频免费版污| 国产精品美女久久久久aⅴ| 亚洲一区二区三区网站| 久久精品国产一区二区电影| 国产精品久久久久久久久久辛辛| 天堂av在线中文| 成人激情小说网站| 毛片毛片女人毛片毛片| 伊人久久大香线蕉av一区二区| 色豆豆成人网| 一区视频二区视频| 国产精品系列在线播放| 日本一区二区三区免费视频| 国产午夜精品久久久 | 亚洲精品国产精品国自产网站| 在线精品视频小说1| av电影在线观看| 99久久精品免费看国产四区| 亚洲二区免费| www.99热| 欧美一区2区视频在线观看| 超碰在线97国产| 日本高清不卡一区二区三| 麻豆精品久久精品色综合| 久久黄色免费视频| 亚洲人成网在线播放| 国产免费av国片精品草莓男男| 精品视频在线观看一区| 国产欧美综合在线| 国产黄色小视频在线观看| 欧美亚洲国产视频| 亚洲成人免费| 日本aaa视频| 欧美一卡二卡三卡四卡| 欧产日产国产精品视频| 国产又大又长又粗又黄| 成人av资源在线| 怡春院在线视频| 97香蕉久久夜色精品国产| 波多野结衣一区| 久久性爱视频网站| 欧美精品一二三| 欧美电影免费观看网站| 国产欧美久久久久| 中文在线一区二区| 蜜桃91麻豆精品一二三区|