日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java注解类型_Java注解类型

發(fā)布時(shí)間:2023/12/9 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java注解类型_Java注解类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本篇文章幫大家學(xué)習(xí)java注解類型,包含了Java注解類型使用方法、操作技巧、實(shí)例演示和注意事項(xiàng),有一定的學(xué)習(xí)價(jià)值,大家可以用來參考。

標(biāo)記注解類型

標(biāo)記注解類型是沒有元素的注解類型,甚至沒有默認(rèn)值。標(biāo)記注解由注解處理工具使用。

public @interface Marker {

}

@Marker

public class Main{

}

元注解類型

元注解類型是注解類型,用于注解其他注解類型。元注解類型是Java類庫的一部分。它們?cè)诎黬ava.lang.annotation中聲明。

以下注解類型是元注解類型:

目標(biāo)

保留

繼承

文檔記錄

可重復(fù)的

本地

目標(biāo)注釋類型

目標(biāo)注釋類型注釋注釋類型以設(shè)置上下文以使用注釋類型。它只有一個(gè)名為value的元素。 其值元素是java.lang.annotation.ElementType枚舉類型的數(shù)組。下表列出了ElementType枚舉中的所有常量。

常量名稱

描述

ANNOTATION_TYPE

注釋另一個(gè)注釋類型聲明,使注釋類型為元注釋。

CONSTRUCTOR

注釋構(gòu)造函數(shù)。

FIELD

注釋字段和枚舉常量。

LOCAL_VARIABLE

注釋局部變量。

METHOD

注釋方法。

PACKAGE

注釋包聲明。

PARAMETER

注釋參數(shù)。

TYPE

注釋類,接口(包括注釋類型)或枚舉聲明。

TYPE_PARAMETER

在通用類,接口,方法等中注釋類型參數(shù)。

TYPE_USE

注釋所有類型的使用。

以下Version注釋類型具有目標(biāo)元注釋,它指定Version注釋類型可以與只有三種類型的程序元素一起使用:任何類型(類,接口,枚舉和注釋類型),構(gòu)造函數(shù)和方法。

import java.lang.annotation.Target;

import java.lang.annotation.ElementType;

@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD })

public @interface Version {

int major();

int minor();

}

Version注釋不能用于除其Target注釋中指定的三種類型之外的任何程序元素。

import java.lang.annotation.ElementType;

import java.lang.annotation.Target;

@Target({ ElementType.TYPE_USE })

@interface MyAnno {

}

@Target({ ElementType.TYPE_USE })

@interface MyAnno2 {

}

public class Main {

public void processData() throws @MyAnno Exception {

int roundedValue = (@MyAnno2 int) .02;

Main t = new @MyAnno Main();

}

}

如果不使用Target注釋類型注釋注釋類型,則注釋類型可以用作任何聲明的修飾符,但類型參數(shù)聲明除外。

保留(Retention)注釋

保留(Retention)注釋設(shè)置注釋類型的保留策略。注釋可以在三個(gè)級(jí)別保留 -

僅源代碼

僅類文件,默認(rèn)行為。

類文件和運(yùn)行時(shí)

保留(Retention)元注釋類型指定Java應(yīng)如何保留注釋。如果注釋類型具有“僅限源代碼”保留策略,則在編譯到類文件中時(shí)將刪除其實(shí)例。如果保留策略為“僅類文件”,則其實(shí)例將保留在類文件中,但不能在運(yùn)行時(shí)讀取。如果保留策略為“類文件和運(yùn)行時(shí)”,則注釋實(shí)例保留在類文件中,并且它們可在運(yùn)行時(shí)讀取。保留元注釋類型聲明一個(gè)名為value的元素,它是java.lang.annotation.RetentionPolicy枚舉類型。

RetentionPolicy枚舉有三個(gè)常量:SOURCE,CLASS 和 RUNTIME,它們分別用于指定僅源,僅類和類運(yùn)行時(shí)的保留策略。

以下代碼在版本注釋類型上使用保留元注釋。它指定版本注釋應(yīng)該在運(yùn)行時(shí)可用。

import java.lang.annotation.Target;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD })

@Retention(RetentionPolicy.RUNTIME)

@interface Version {

int major();

int minor();

}

如果不對(duì)注釋類型使用保留元注釋,則其保留策略僅默認(rèn)為類文件。則將無法在運(yùn)行時(shí)讀取這些注釋。在類文件中或在運(yùn)行時(shí),局部變量聲明上的注釋永遠(yuǎn)不可用,而不考慮注釋類型的保留策略。

繼承注釋類型

繼承注釋類型是標(biāo)記元注釋類型。如果注釋類型使用Inherited元注釋注釋,則其實(shí)例將由子類聲明繼承。如果使用注釋類型注釋除類聲明以外的任何元素,它沒有任何效果。以下代碼顯示了

import java.lang.annotation.Inherited;

@interface Ann2 {

int id();

}

@Inherited

@interface Ann3 {

int id();

}

@Ann2(id = 1)

@Ann3(id = 2)

class A {

}

// Class B inherits Ann3(id=2) annotation from the class A

class B extends A {

}

文檔注釋

文檔化注釋類型是標(biāo)記元注釋類型。如果注釋類型用Documented注解,Javadoc工具將為其所有實(shí)例生成文檔。

import java.lang.annotation.Documented;

@Documented

@interface Version {

int major();

int minor();

}

@Version(major = 1, minor = 0)

public class Main {

}

當(dāng)使用Javadoc工具為Main類生成文檔時(shí),Main類聲明上的Version注釋也會(huì)作為文檔的一部分生成。

可重復(fù)注釋

Java 8添加了可重復(fù)元注釋類型。如果在一個(gè)單獨(dú)的代碼元素上重復(fù)使用它,注釋類型聲明必須用

Repeatable注釋類型只有一個(gè)名為value的元素,其類型是另一個(gè)注釋類型的類類型。

import java.lang.annotation.Repeatable;

@interface LogHistory {

Log[] value();

}

@Repeatable(LogHistory.class)

@interface Log {

String date();

String comments();

}

@Log(date = "01/01/2018", comments = "B")

@Log(date = "01/21/2018", comments = "A")

public class Main {

public static void process() {

}

}

本地注釋

本地(Native)注釋類型是元注釋,用于注釋可以從本地代碼引用的字段。它是一個(gè)標(biāo)記注釋。

總結(jié)

以上是生活随笔為你收集整理的java注解类型_Java注解类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。