日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java Annotation注解相關原理代碼總結

瀏覽:13日期:2022-08-29 15:17:47

Java.lang 中自帶的注解

@Override:表示當前的方法定義將覆蓋基類的方法。如果你不小心拼寫錯誤,或者方法簽名被錯誤拼寫的時候,編譯器就會發出錯誤提示。 @Deprecated:如果使用該注解的元素被調用,編譯器就會發出警告信息。 @SuppressWarnings:關閉不當的編譯器警告信息。 @SafeVarargs:在 Java 7 中加入用于禁止對具有泛型varargs參數的方法或構造函數的調用方發出警告。 @FunctionalInterface:Java 8 中加入用于表示類型聲明為函數式接口

如何定義注解

以下是一個為標記注解(marker annotation), 不包含任何元素

package cn.haidnor.annotation;import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Test { }

注解的定義也需要一些元注解(meta-annoation),比如 @Target 和 @Retention。

@Target 定義你的注解可以應用在哪里(例如是方法還是字段)。

@Retention 定義了注解在哪里可用,在源代碼中(SOURCE),class文件(CLASS)中或者是在運行時(RUNTIME)。

Demo 簡單實例

定義注解

以下的代碼中。Target 定義只能在方法上使用,Retention 定義保留域

package cn.haidnor.annotation;import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface UseCase { int id(); String description() default 'no description';}

在類中使用注解

package cn.haidnor.clazz;package cn.haidnor.clazz;import cn.haidnor.annotation.UseCase;import java.util.List;public class PasswordUtils { @UseCase(id = 47, description ='Passwords must contain at least one numeric') public boolean validatePassword(String passwd) { return (passwd.matches('w*dw*')); } @UseCase(id = 48) public String encryptPassword(String passwd) { return new StringBuilder(passwd).reverse().toString(); } @UseCase(id = 49, description = 'New passwords can’t equal previously used ones') public boolean checkForNewPassword( List<String> prevPasswords, String passwd) { return !prevPasswords.contains(passwd); }}

對以上 demo 中的代碼進行測試

package cn.haidnor.test;import cn.haidnor.annotation.UseCase;import cn.haidnor.clazz.PasswordUtils;import java.util.*;import java.util.function.Consumer;import java.util.stream.*;import java.lang.reflect.*;public class UseCaseTracker { public static void main(String[] args) { List<Integer> useCases = IntStream.range(44, 51).boxed().collect(Collectors.toList()); trackUseCases(useCases, PasswordUtils.class); } public static void trackUseCases(List<Integer> useCasesList, Class<?> clazz) { // getDeclaredMethods() 獲取所有公開的方法 for(Method m : clazz.getDeclaredMethods()) { // getAnnotation() 獲取指定注解 UseCase uc = m.getAnnotation(UseCase.class); if(uc != null) {System.out.print('Found Use Case ');// 提取注解元素值System.out.println(uc.id());// 提取注解元素值System.out.println(’t’ + uc.description());useCasesList.remove( Integer.valueOf( uc.id() ) ); } } // 迭代集合 useCasesList.forEach(new Consumer<Integer>() { @Override public void accept(Integer integer) {System.out.println('Missing use case ' + integer); } }); // 以上代碼可以使用箭頭行數簡寫 // useCasesList.forEach(i -> System.out.println('Missing use case ' + i)); }}

控制臺輸出結果

Found Use Case 47 Passwords must contain at least one numericFound Use Case 48 no descriptionFound Use Case 49 New passwords can’t equal previously used onesMissing use case 44Missing use case 45Missing use case 46Missing use case 50

元注解

Java 語言中目前有 5 種標準注解(前面介紹過),以及 5 種元注解。元注解用于注解其他的注解

Java Annotation注解相關原理代碼總結

注解中可以使用的元素

所有基本類型(int、float、boolean等)

String Class enum Annotation 以上類型的數組

其他類型,編譯器就會報錯。注意,也不允許使用任何包裝類型

注解的默認值

無論是在源代碼聲明時還是在注解接口中定義默認值時,都不能使用 null 作為其值。

import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface SimulatingNull { int id() default -1; String description() default '';}

使用反射獲取注解的方法流程圖

Java Annotation注解相關原理代碼總結

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品片aa在线观看| 久久av综合| 亚洲精品福利| 一区二区电影| 日本成人精品| 精品三级av| 婷婷久久一区| 天堂av在线一区| 九一成人免费视频| 日韩一区二区久久| 蜜臀久久99精品久久久久宅男| 免费视频久久| 国产美女亚洲精品7777| 激情视频网站在线播放色 | 97欧美在线视频| 激情婷婷亚洲| 日韩激情中文字幕| 黄色在线网站噜噜噜| 久久亚洲精品伦理| 国产亚洲人成a在线v网站| 欧美日韩尤物久久| 日韩精品久久理论片| 国产精品xxx| 午夜国产精品视频免费体验区| 日韩在线观看中文字幕| 日韩亚洲一区在线| 亚洲精品动态| 日韩精彩视频在线观看| 免费不卡中文字幕在线| 久久国产精品色av免费看| 久久a爱视频| 亚洲深夜av| 国产精品黄网站| 欧美在线亚洲综合一区| 国产视频一区二区在线播放| 天堂中文在线播放| 蜜桃一区二区三区在线| 日日夜夜免费精品视频| 福利欧美精品在线| 综合日韩在线| 久久久久99| 国产精成人品2018| 亚洲激情偷拍| 黄色aa久久| 国产精品一线天粉嫩av| 亚洲激情另类| 亚洲国产欧美日本视频| 四虎精品永久免费| 婷婷成人在线| 国产精品多人| 日韩欧美另类中文字幕| 成人午夜国产| 日韩精品视频在线看| 亚洲国产综合在线看不卡| 欧美黄页在线免费观看| 日本成人在线一区| 香蕉久久国产| 欧美日韩激情| 婷婷综合六月| 视频二区不卡| 中文在线资源| 成人午夜网址| 精品国产乱码久久久久久1区2匹 | 伊人www22综合色| 91精品1区| 午夜免费一区| 国产传媒在线| 中国字幕a在线看韩国电影| 老色鬼精品视频在线观看播放| 日本成人手机在线| 日韩精品一页| 欧美日韩一区二区三区四区在线观看| 在线一区视频| 久久亚洲色图| 喷白浆一区二区| 男人操女人的视频在线观看欧美| 亚洲少妇自拍| 亚洲精品高潮| 欧美日韩调教| 九九久久国产| 麻豆视频在线观看免费网站黄| 国产乱人伦精品一区| 国产精品久久777777毛茸茸| 欧美精品导航| 91精品综合| 蜜桃av一区二区在线观看| 亚久久调教视频| 国产精品久久久久久久久久久久久久久 | 日韩精品首页| 亚洲大全视频| 欧美精品三级在线| 日本成人在线网站| 国产一区二区三区四区五区传媒| 久久一区视频| 亚洲国产不卡| 国产精品视频一区二区三区四蜜臂 | 快she精品国产999| 国产精品久久久久久久久久白浆| 国产va在线视频| 视频一区视频二区在线观看| 国产欧美亚洲精品a| 亚洲成人va| 国产毛片久久久| 91综合网人人| 三级欧美韩日大片在线看| 国产精品一区毛片| 欧美一区=区| 波多视频一区| 日韩精品91亚洲二区在线观看| 日韩在线观看一区| 88久久精品| 亚洲经典在线| 国产福利电影在线播放| 欧美一区不卡| 免费在线看一区| 九九久久婷婷| 丝袜av一区| 国产videos久久| 亚洲日产av中文字幕| av亚洲一区二区三区| 国产精品一区二区三区四区在线观看 | 午夜久久一区| 日本在线啊啊| 国产精品va视频| 亚洲精品亚洲人成在线观看| 91九色精品| 九一国产精品| 夜夜精品视频| 国产精品日韩欧美一区| 精品亚洲美女网站| 精品成人18| 好看的亚洲午夜视频在线| 精品国产三区在线| 少妇精品久久久| 国户精品久久久久久久久久久不卡 | 日韩精品一二三四| 久久亚洲色图| 免播放器亚洲一区| 夜久久久久久| 日韩视频网站在线观看| 岛国av在线播放| 久久久人人人| 亚洲欧美日韩高清在线| 日韩大片在线| 婷婷激情图片久久| 最新国产精品| 国产日本精品| 老牛国内精品亚洲成av人片| a天堂资源在线| 99视频精品全国免费| 亚洲一区日韩在线| 国产精品天天看天天狠| 国产精品超碰| av中文资源在线资源免费观看| 麻豆精品在线| 精品91久久久久| 欧美日韩91| 国产96在线亚洲| 日韩在线看片| 午夜精品福利影院| 国产精品不卡| 国产福利片在线观看| 亚洲精品黄色| 99久久99久久精品国产片果冰| 91成人在线网站| 亚洲一区区二区| 国产亚洲一区二区手机在线观看| 蜜臀av国产精品久久久久 | 成人日韩在线观看| 欧美日韩va| 日韩在线播放一区二区| 日本成人手机在线| 日韩视频免费| 精品久久91| 亚洲精品综合| 久久久精品久久久久久96| 日韩精品一区二区三区av| 日本免费一区二区三区四区| 免费日韩精品中文字幕视频在线| 国产精品超碰| 亚洲综合色婷婷在线观看| 91精品91| 在线日韩电影| 亚洲www啪成人一区二区| 国产乱码精品一区二区三区四区 | 久久在线电影| 日韩精品2区| 国产一卡不卡| 18国产精品| 欧美.日韩.国产.一区.二区| 视频在线不卡免费观看| 婷婷综合国产| 日本在线视频一区二区| 日韩一区二区三免费高清在线观看 | 毛片不卡一区二区| 欧美激情福利| 四虎成人av| 91精品国产调教在线观看| 亚洲午夜精品久久久久久app| 亚洲婷婷免费|