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

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

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

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

我們寫的注解包括三個環節:

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

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

  1. package me.test;     
  2.  
  3. import java.lang.annotation.* ;//導入注解包中所有注解  
  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)

這個標識注解應該標在那里ElementType的幾個枚舉值就代表了,注解應該寫在的位置。

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

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

  1. @MyAnnotation 
  2. class  A  
  3. {  

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

Class類有一個方法:

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

 這個方法接受一個注解的字節碼參數 ,然后返回這個類所標識的注解對象 ,因為我們標識了一個注解就相當于產生了一個注解對象 。

boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)

 這個方法判斷一個類是否被注解所標識。

下面是代碼示例:

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設計清單
  4. Java遠程方法調用RMI
  5. Java編程:常見問題匯總
責任編輯:林師授 來源: yue7603835的博客
相關推薦

2021-12-30 12:30:01

Java注解編譯器

2024-03-07 08:22:51

Java機制元數據

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開發代碼

2021-03-08 00:11:02

Spring注解開發

2023-03-30 16:16:00

Java自定義注解開發

2023-06-30 08:26:24

Java注解Java程序元素

2009-06-15 17:48:32

Spring注解注入屬性

2020-12-02 11:56:16

Java注解Excel

2020-09-04 13:30:43

Java自定義代碼

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技術棧公眾號

主站蜘蛛池模板: 国产精品久久99 | 四虎影院在线免费观看 | 9久久精品 | 久久69精品久久久久久久电影好 | 综合网伊人| 欧美一区二区三区在线视频 | 国产精品久久9 | 亚洲精品国产精品国自产在线 | 狠狠爱一区二区三区 | 亚洲精品视频三区 | 国产十日韩十欧美 | 成人免费小视频 | 国产成人午夜精品影院游乐网 | 欧美一区二区三区在线播放 | 国产精品视频yy9299一区 | 中文字幕av网 | 欧美成ee人免费视频 | 日韩视频一区二区 | 国产成人综合在线 | 狠狠操网站| 黄色高清视频 | 欧美一级在线观看 | 中文字幕国产视频 | 日韩欧美在线观看视频网站 | 激情一区二区三区 | 高清久久久 | 日本精品一区二区三区四区 | 亚洲一二三区在线观看 | 久久综合狠狠综合久久 | av片免费观看 | 亚洲视频在线播放 | 综合第一页 | 天天影视综合 | 成人三级视频在线观看 | 青娱乐一区二区 | 97精品国产97久久久久久免费 | 国产精品美女久久久久久免费 | 欧美九九九 | 国产精品女人久久久 | 国产精品久久久久久吹潮 | 精品久久久久久亚洲精品 |