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

Java元注解最全詳解(四大常用Java元注解)

開發(fā) 前端
Java元注解是java API提供的,是用于修飾注解的注解。通過(guò)使用Java元注解,可以為注解指定:作用范圍、生命周期、是否可重復(fù)和是否繼承等信息,從而提高注解的靈活性和可擴(kuò)展性。

Java元注解

Java元注解是java API提供的,是用于修飾注解的注解。

通過(guò)使用Java元注解,可以為注解指定:作用范圍、生命周期、是否可重復(fù)和是否繼承等信息,從而提高注解的靈活性和可擴(kuò)展性。

Java元注解分類

Java元注解是包括:@Retention、@Target、@Documented、@Inherited等。

如下圖所示:

圖片圖片

這些元注解包括:

  • @Retention:用來(lái)指定注解的保留期限,可以設(shè)置為SOURCE、CLASS或RUNTIME。
  • @Target:用來(lái)指定注解可以應(yīng)用于哪些程序元素,包括類、方法、變量、參數(shù)等。默認(rèn)情況下,注解可以應(yīng)用于所有程序元素。
  • @Documented:用來(lái)指定注解是否出現(xiàn)在Java文檔中。
  • @Inherited:用來(lái)指定子類是否繼承父類的注解。

下面我就分別來(lái)詳解4大Java元注解@mikechen

1.@Target

@Target用于指定注解的作用范圍,它的取值包括:

圖片圖片

  • ElementType.TYPE:用于注解類、接口、枚舉和注解類型。
  • ElementType.FIELD:用于注解字段、枚舉常量。
  • ElementType.METHOD:用于注解方法。
  • ElementType.PARAMETER:用于注解方法參數(shù)。
  • ElementType.CONSTRUCTOR:用于注解構(gòu)造器。
  • ElementType.LOCAL_VARIABLE:用于注解局部變量。
  • ElementType.ANNOTATION_TYPE:用于注解其他注解類型。
  • ElementType.PACKAGE:用于注解包。

@Target示例:

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;


@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
public @interface MyAnnotation {
    // ...
}

這個(gè)示例中,@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})指定了MyAnnotation注解可以用于類、字段和方法。

2.@Retention

@Retention用于指定注解的生命周期,它的取值包括:

圖片圖片

  • RetentionPolicy.SOURCE:注解只保留在源代碼中,編譯時(shí)被忽略。
  • RetentionPolicy.CLASS:注解被編譯到字節(jié)碼中,但運(yùn)行時(shí)被忽略(默認(rèn)值)。
  • RetentionPolicy.RUNTIME:注解在運(yùn)行時(shí)也保留,并可以被反射機(jī)制讀取。

@Retention示例:

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;


@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    // ...
}

這個(gè)示例中,@Retention指定了MyAnnotation注解的保留策略為RUNTIME,即可以在運(yùn)行時(shí)獲取到該注解的信息。

3.@Documented

@Documented指定注解是否包含在JavaDoc中,默認(rèn)情況下注解不會(huì)被包含在JavaDoc中。

如果想讓注解被包含在JavaDoc中,就需要使用@Documented注解。

@Documented示例:
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;


@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    // ...
}

這個(gè)示例中,@Documented注解指定了MyAnnotation注解可以被包含在JavaDoc中。

4.@Inherited

@Inherited用于指定注解是否可以被子類繼承。

@Inherited示例:

import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;


@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    // ...
}
責(zé)任編輯:武曉燕 來(lái)源: mikechen的互聯(lián)網(wǎng)架構(gòu)
相關(guān)推薦

2022-09-29 00:24:30

元宇宙虛擬現(xiàn)實(shí)教育

2021-12-30 12:30:01

Java注解編譯器

2025-05-08 01:00:00

Nginx算法負(fù)載均衡

2010-09-15 13:35:25

SwingHibernateStruts

2022-06-17 11:35:28

元宇宙科技交互能力

2022-02-11 14:50:12

元宇宙物聯(lián)網(wǎng)人工智能

2022-05-11 14:46:19

元宇宙虛擬世界人工智能

2011-06-22 08:38:35

Java EE

2018-04-04 15:50:23

攢機(jī)主機(jī)配置

2011-10-21 13:59:48

Java云計(jì)算

2010-07-19 10:05:07

jQuery

2010-08-05 10:22:46

Flex效果

2021-07-16 10:32:33

前端元編程代碼

2015-07-17 09:50:16

Carthage優(yōu)劣比較

2021-11-03 15:15:21

Go重構(gòu)技術(shù)

2010-06-03 09:09:10

Hadoop

2010-11-15 15:20:13

Oracle索引掃描

2019-10-15 08:00:00

HTTP2HTTP前端

2010-07-02 14:34:53

UML類圖

2015-01-05 14:18:23

普元SOABPS
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 午夜影视 | 精品久久久久久 | 亚洲精品资源 | av一区二区三区四区 | 欧美日韩一区二区三区四区 | 91国在线视频 | 一区二区欧美在线 | 亚洲成人精品一区 | 丁香五月网久久综合 | 成人免费淫片aa视频免费 | 亚洲国产精品久久久 | 日韩在线视频一区 | 欧美在线激情 | 久久精品亚洲精品国产欧美 | 黄色在线播放视频 | 精品国产综合 | 欧美日韩综合一区 | 伊人色综合久久久天天蜜桃 | 久久免费精品 | 美人の美乳で授乳プレイ | 涩涩操 | 97精品一区二区 | 亚洲欧美精品在线观看 | 九九热免费视频在线观看 | 亚洲二区视频 | 午夜亚洲 | 欧美精品一区二区三区四区 在线 | 在线视频一区二区 | 欧美4p| 玖玖色在线视频 | 国产视频久久久 | av毛片 | 亚洲一区电影 | 神马影院一区二区三区 | 在线综合视频 | 日日碰狠狠躁久久躁96avv | 国产91中文| 国产精品免费在线 | 国产精品视频二区三区 | 亚洲一区二区在线电影 | 北条麻妃av一区二区三区 |