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

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

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

瀏覽:15日期: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久久,三上悠亚国产精品一区二区三区
狠狠干综合网| 免费av一区二区三区四区| 日本不卡一区二区三区| 亚洲五月综合| 成人日韩在线观看| 日本中文字幕一区二区| 久久久久久久久99精品大| 欧美aa在线观看| 免费观看久久av| 日韩毛片网站| 久久午夜影视| 久久一区欧美| 在线日韩视频| 精品三级国产| 国产专区一区| 91大神在线观看线路一区| 老牛影视精品| 日韩一区二区三区四区五区| 麻豆视频观看网址久久| 伊人精品视频| 福利一区在线| 日韩av一区二区在线影视| 老色鬼精品视频在线观看播放| 国产综合视频| 中文字幕人成乱码在线观看| 宅男噜噜噜66国产日韩在线观看| 不卡福利视频| 亚洲精华国产欧美| 亚洲精品一二| 亚洲一区欧美| 国产亚洲一区| 亚洲精品福利| 高潮久久久久久久久久久久久久| 国产一区二区三区视频在线| 丝袜诱惑制服诱惑色一区在线观看| 热三久草你在线| 日韩久久精品网| 国产欧美日韩视频在线| 91精品国产自产精品男人的天堂| 国产日韩欧美一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久精品国内一区二区三区水蜜桃| 一本色道久久精品| 精品视频亚洲| 欧美国产不卡| 国产伦精品一区二区三区在线播放| 亚洲神马久久| 欧美日韩国产免费观看| 97精品国产| 成人午夜亚洲| 国产一区二区三区四区二区| 国产日本精品| 97精品资源在线观看| 亚洲精选91| 日韩福利在线观看| 在线观看一区| 日韩va亚洲va欧美va久久| 伊人国产精品| 亚洲ww精品| 日韩高清不卡在线| 日韩av字幕| 国产精品s色| 欧美日本三区| 国产欧美日韩一级| 福利一区二区| 亚洲91视频| 妖精视频成人观看www| 日韩精品一级二级 | 蜜桃成人av| 天堂va蜜桃一区二区三区| 日韩影院在线观看| 青青青国产精品| 国产在线观看www| 99久久夜色精品国产亚洲1000部| 欧美大黑bbbbbbbbb在线| 美国三级日本三级久久99| 国产欧美日韩精品高清二区综合区| 欧美啪啪一区| 韩国精品主播一区二区在线观看| 亚洲高清影视| 国产欧美激情| 亚洲国产日韩欧美在线| 日韩国产在线观看| 精品国产欧美日韩| 尤物网精品视频| 国产精品红桃| 国产视频一区免费看| 日本午夜精品视频在线观看| 另类综合日韩欧美亚洲| 久久福利影视| 美女久久99| 热久久久久久久| 亚洲午夜天堂| 欧美日韩黄网站| 先锋亚洲精品| 欧美香蕉视频| 欧美91在线|欧美| 在线午夜精品| 久久精品在线| 久久精品国产久精国产爱| 午夜在线播放视频欧美| 日本欧美不卡| 精品国产鲁一鲁****| 日韩国产欧美一区二区三区| 国产91精品对白在线播放| 国产亚洲观看| 伊人久久大香伊蕉在人线观看热v| 亚洲国产欧美日本视频| 久久国产三级精品| 亚洲精品进入| 一区二区三区四区日韩| 国产99精品一区| yellow在线观看网址| 久久av电影| 欧美xxxx性| 精品入口麻豆88视频| 国产剧情在线观看一区| 欧美日韩精品一区二区三区视频 | 国内在线观看一区二区三区| 日韩精品91亚洲二区在线观看| 日韩中文字幕亚洲一区二区va在线 | 国产不卡精品| 麻豆传媒一区二区三区| 欧美日韩一区二区高清| 国产精品一区二区三区四区在线观看 | 亚洲精品九九| 欧美日韩夜夜| 欧美精品影院| 精品亚洲自拍| 一区二区三区四区日本视频| 91欧美在线| 99免费精品| 免费不卡在线视频| 国产精品一区二区三区四区在线观看| 久久国内精品自在自线400部| 国产乱码精品一区二区三区亚洲人| 国产精品白丝av嫩草影院| 精品久久久久中文字幕小说| 亚洲精品一级二级| 在线观看亚洲精品福利片| 国产日韩欧美一区在线| av资源亚洲| 婷婷综合一区| 麻豆视频久久| 蜜臀久久99精品久久一区二区 | 免费观看不卡av| 蜜臀av亚洲一区中文字幕| 久久精品99久久久| 国产资源在线观看入口av| 欧美资源在线| 国产精品黄网站| 亚洲激情黄色| 精品国产精品久久一区免费式| 欧美天堂视频| 日本三级亚洲精品| 99精品国产一区二区三区| 午夜性色一区二区三区免费视频| 风间由美中文字幕在线看视频国产欧美| 亚洲精品电影| 日韩av福利| 久久伊人久久| 亚洲视频国产精品| 欧美色图一区| 成人国产精品一区二区免费麻豆| 一区二区国产精品| 五月天久久网站| 色在线中文字幕| 麻豆精品视频在线观看免费| 综合视频一区| 国产精品三上| 国产一区日韩一区| av在线最新| 成人综合一区| 国产精品美女久久久久久不卡| 日韩一区二区三区精品视频第3页| 国户精品久久久久久久久久久不卡| 精品一区二区三区亚洲| 国产精品免费不| 国产欧美另类| 国产极品一区| 麻豆精品在线播放| 欧美黑人做爰爽爽爽| 国产精品巨作av| 国产精品**亚洲精品| 欧美黄色精品| 日产精品一区二区| 日韩国产一区| 激情婷婷欧美| 9色精品在线| 中文字幕亚洲精品乱码| 亚洲精选91| 日韩高清一区| 久久国产精品色av免费看| 日韩av网站在线观看| 日本免费在线视频不卡一不卡二| 日韩精品第一| 国产成人免费| 五月天久久久| 奇米狠狠一区二区三区| 麻豆国产精品|