成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入注解:在Java中設(shè)計和使用自己的注解

開發(fā) 后端
我們用過JDK給我們提供的 @Override @Deprecated @SuppressWarning 注解 ,這些注解是JDK給我們提供的,我們只是在用別人寫好的東西,那么我們是否可以自己寫注解呢?當(dāng)然是可以的。

我們用過JDK給我們提供的 @Override @Deprecated @SuppressWarning 注解 ,這些注解是JDK給我們提供的,我們只是在用別人寫好的東西,那么我們是否可以自己寫注解呢?當(dāng)然是可以的。

我們寫的注解包括三個環(huán)節(jié):

1、 注解的聲明,也就是注解類的定義。

形式如下 @interface 來進行注解的聲明。

  1. package me.test;     
  2.  
  3. import java.lang.annotation.* ;//導(dǎo)入注解包中所有注解  
  4.  
  5. @Retention(RetentionPolicy.RUNTIME)   //解釋如下  
  6.  
  7. @Target(ElementType.TYPE)//解釋如下  
  8.  
  9. public @interface MyAnnotation               
  10. {   
  11.  
  12. }  
  13.  
  14. @Retention(RetentionPolicy.RUNTIME)  

指定了注解保留的周期,注解的生命周期有是三個,RetentionPolicy 枚舉的三個值代表了三個聲明周期,默認是CLASS。

枚舉常量摘要
CLASS
          編譯器將把注釋記錄在類文件中,但在運行時 VM 不需要保留注釋。
RUNTIME
          編譯器將把注釋記錄在類文件中,在運行時 VM 將保留注釋,因此可以反射性地讀取。
SOURCE
          編譯器要丟棄的注釋。

 @Target(ElementType.TYPE)

這個標(biāo)識注解應(yīng)該標(biāo)在那里ElementType的幾個枚舉值就代表了,注解應(yīng)該寫在的位置。

CONSTRUCTOR
          構(gòu)造方法聲明
FIELD
          字段聲明(包括枚舉常量)
LOCAL_VARIABLE
          局部變量聲明
METHOD
          方法聲明
PACKAGE
          包聲明
PARAMETER
          參數(shù)聲明
TYPE
          類、接口(包括注釋類型)或枚舉聲明

 2、 使用了注解的類或者方法。

  1. @MyAnnotation 
  2. class  A  
  3. {  

3、 利用反射來操作注解,詳細見代碼。

Class類有一個方法:

<A extends Annotation>
A
   getAnnotation(Class<A> annotationClass)

 這個方法接受一個注解的字節(jié)碼參數(shù) ,然后返回這個類所標(biāo)識的注解對象 ,因為我們標(biāo)識了一個注解就相當(dāng)于產(chǎn)生了一個注解對象 。

boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)

 這個方法判斷一個類是否被注解所標(biāo)識。

下面是代碼示例:

MyAnnotationTest.java中

  1. package me.test;  
  2. import java.lang.annotation.Annotation;  
  3. @MyAnnotation 
  4. public class MyAnnotationTest  
  5. {   
  6.  
  7.     public static void main(String []args)  
  8.     {  
  9.      if(MyAnnotationTest.class.isAnnotationPresent( MyAnnotation.class))  
  10.      {  
  11.        MyAnnotation an=(MyAnnotation)MyAnnotationTest.class.getAnnotation(MyAnnotation.class) ;  
  12.        System.out.println(an.toString());  
  13.      }  
  14.     }  

MyAnnotation.java中

  1. package me.test;  
  2. import java.lang.annotation.ElementType;  
  3. import java.lang.annotation.Retention;  
  4. import java.lang.annotation.RetentionPolicy;  
  5. import java.lang.annotation.Target;  
  6. @Retention(RetentionPolicy.RUNTIME)  
  7. @Target(ElementType.TYPE)  
  8. public @interface MyAnnotation  
  9. {   
  10.  

 原文鏈接:http://blog.csdn.net/yue7603835/article/details/7234786

【編輯推薦】

  1. Java類加載器以及類加載器的委托模型
  2. Java中Class對象詳解
  3. Java API設(shè)計清單
  4. Java遠程方法調(diào)用RMI
  5. Java編程:常見問題匯總
責(zé)任編輯:林師授 來源: yue7603835的博客
相關(guān)推薦

2021-12-30 12:30:01

Java注解編譯器

2024-03-07 08:22:51

Java機制元數(shù)據(jù)

2022-11-11 08:31:39

Java注解注解類

2022-12-14 09:10:06

JAVA注解繼承

2017-11-17 09:13:31

Java注解

2016-12-02 17:32:45

LinuxGlyphr

2025-03-27 09:38:35

2020-03-06 10:25:10

注解Java代碼

2021-03-26 09:37:12

Java開發(fā)代碼

2021-03-08 00:11:02

Spring注解開發(fā)

2023-03-30 16:16:00

Java自定義注解開發(fā)

2023-06-30 08:26:24

Java注解Java程序元素

2009-06-15 17:48:32

Spring注解注入屬性

2020-09-04 13:30:43

Java自定義代碼

2020-12-02 11:56:16

Java注解Excel

2021-04-21 08:56:46

Java注解反射

2017-12-22 09:59:43

2020-12-10 08:21:27

XML映射Mybatis

2023-08-26 11:36:31

Java框架Spring

2024-01-18 09:38:00

Java注解JDK5
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一区二区三区亚洲 | 亚洲午夜精品 | 五月婷婷 六月丁香 | 人人澡人人爱 | 免费一区二区三区 | 欧美激情在线一区二区三区 | 久精品久久 | 一级黄色片在线看 | 国产亚洲成av人片在线观看桃 | 国产中文字幕在线 | 国产一区二区三区在线免费 | 成人国产精品久久 | 欧美精品综合在线 | 美女在线观看av | 成人h视频在线 | 午夜一区二区三区 | www国产亚洲精品久久网站 | 中文字幕一区二区三区精彩视频 | 亚洲第1页 | 亚洲成人一二三 | 不卡欧美 | 国产91精品在线 | 99一级毛片| 国产精品www | 在线免费看黄 | 亚洲成av人片在线观看 | 91久久爽久久爽爽久久片 | 91成人在线 | 男人久久天堂 | 中文字幕亚洲精品 | av一区二区三区四区 | 国产在线观看不卡一区二区三区 | 日韩精品一区二区三区中文在线 | 亚洲视频在线观看 | 一区二区三区视频在线 | 可以看黄的视频 | 黄色大片免费网站 | 欧美成人黄色小说 | 91精品国产综合久久国产大片 | 四虎永久免费影院 | 成人网av|