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

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

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

Java元注解

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

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

Java元注解分類

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

如下圖所示:

圖片圖片

這些元注解包括:

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

下面我就分別來詳解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)情況下注解不會被包含在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é)任編輯:武曉燕 來源: mikechen的互聯(lián)網(wǎng)架構(gòu)
相關(guān)推薦

2021-12-30 12:30:01

Java注解編譯器

2022-09-29 00:24:30

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

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-07-02 14:34:53

UML類圖

2010-06-03 09:09:10

Hadoop

2010-11-15 15:20:13

Oracle索引掃描

2019-10-15 08:00:00

HTTP2HTTP前端

2020-09-24 10:00:50

SpringBoo
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产精品美女久久久 | 欧美另类视频在线 | 亚洲免费在线观看 | 久久久www成人免费无遮挡大片 | 国产精品永久免费视频 | 欧美国产精品一区二区三区 | 第一区在线观看免费国语入口 | 久久久久久久99 | 国产精品免费福利 | 成人av在线大片 | 亚洲一av| 在线中文视频 | 精品一区二区三区四区五区 | 亚洲电影一区二区三区 | 九九久久久久久 | 国产美女久久 | 国产精品视频综合 | 欧美日韩在线精品 | 国产精品一区三区 | 激情五月婷婷综合 | 久精品久久 | 亚洲免费在线 | 欧美激情 一区 | 亚洲小视频| 国产在线视频一区 | 国产精品一区在线 | 国产一级一级毛片 | 久久久久精 | 日韩av一区二区在线观看 | 久久成人免费 | 国产精品久久久久久久久久免费看 | 日本a级大片 | 黄色大片免费播放 | 国产韩国精品一区二区三区 | 日韩欧美亚洲 | 亚洲区一区二区 | 国产精品国产精品国产专区不片 | 久久国产精品亚洲 | 蜜桃一区二区三区在线 | 国产亚洲精品久久午夜玫瑰园 | 精品欧美乱码久久久久久 |