欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何在Java中設(shè)計(jì)使用自己的注解

今天就跟大家聊聊有關(guān)如何在Java中設(shè)計(jì)使用自己的注解,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

目前成都創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、安州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

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

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

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

形式如下 @interface 來進(jìn)行注解的聲明。

package me.test;      import java.lang.annotation.* ;//導(dǎo)入注解包中所有注解   @Retention(RetentionPolicy.RUNTIME)   //解釋如下   @Target(ElementType.TYPE)//解釋如下   public @interface MyAnnotation               {    }   @Retention(RetentionPolicy.RUNTIME)

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

枚舉常量摘要
CLASS
          編譯器將把注釋記錄在類文件中,但在運(yùn)行時(shí) VM 不需要保留注釋。

RUNTIME
          編譯器將把注釋記錄在類文件中,在運(yùn)行時(shí) VM 將保留注釋,因此可以反射性地讀取。

SOURCE
          編譯器要丟棄的注釋。

@Target(ElementType.TYPE)

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

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

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

@MyAnnotation class  A  {  }

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

Class類有一個(gè)方法:

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

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

booleanisAnnotationPresent(Class<? extendsAnnotation> annotationClass)

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

下面是代碼示例:

MyAnnotationTest.java中

package me.test;  import java.lang.annotation.Annotation;  @MyAnnotation public class MyAnnotationTest  {        public static void main(String []args)      {       if(MyAnnotationTest.class.isAnnotationPresent( MyAnnotation.class))       {         MyAnnotation an=(MyAnnotation)MyAnnotationTest.class.getAnnotation(MyAnnotation.class) ;         System.out.println(an.toString());       }      }  }

MyAnnotation.java中

package me.test;  import java.lang.annotation.ElementType;  import java.lang.annotation.Retention;  import java.lang.annotation.RetentionPolicy;  import java.lang.annotation.Target;  @Retention(RetentionPolicy.RUNTIME)  @Target(ElementType.TYPE)  public @interface MyAnnotation  {    }

看完上述內(nèi)容,你們對如何在Java中設(shè)計(jì)使用自己的注解有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)頁題目:如何在Java中設(shè)計(jì)使用自己的注解
文章出自:http://chinadenli.net/article34/gepipe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃網(wǎng)站設(shè)計(jì)云服務(wù)器營銷型網(wǎng)站建設(shè)ChatGPT建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)