【Java注解】jdk8中注解的新特新
创始人
2025-05-30 06:34:07

jdk8中注解的新特新:

1.可重复注解

2.类型注解

一:可重复注解

什么是重复注解?可重复写的注解。

例如:

注解:

import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
public @interface MyAnnotation {String value() default "hello";
}

使用: 

@MyAnnotation(value = "hi")
@MyAnnotation(value = "abc")
class Person {
}

但是这样写还差点意思,我们还要做一些配置

在jdk8之前的写法

创建MyAnntation数组

public @interface MyAnnotations {MyAnnotation[] value();
}

 使用:

@MyAnnotations({@MyAnnotation(value = "hi"),@MyAnnotation(value = "abc")})
class Person {
}

jdk8以后

 在注解MyAnntation中引入一个注解@Repeatable():可重复的

 注解MyAnntation如下

import java.lang.annotation.*;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;@Inherited
@Repeatable(MyAnnotations.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
public @interface MyAnnotation {String value() default "hello";
}

在MyAnnotations注解中的声明周期以及可修饰的结构的要与MyAnnotation注解中的保持一致

注解MyAnnotations:

import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
public @interface MyAnnotations {MyAnnotation[] value();
}

使用:

@MyAnnotation(value = "hi")
@MyAnnotation(value = "abc")
class Person {}

 二:类型注解

在Java 8之前:注解只能是在声明的地方所使用,

Java8开始,注解可以应用 在任何地方。

ElementType.TYPE_PARAMETER 表示该注解能写在类型变量的声明语句中(如:泛型声明)。

ElementType.TYPE_USE 表示该注解能写在使用类型的任何语句中。

 1.ElementType.TYPE_PARAMETER 使用:

class Generic<@MyAnnotation T>{}

但是这个时候会报错,我们在MyAnnotation中可使用的类型中加入TYPE_PARAMETER

注解MyAnnotation: 

import java.lang.annotation.*;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;@Inherited
@Repeatable(MyAnnotations.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE,TYPE_PARAMETER})
public @interface MyAnnotation {String value() default "hello";
}

总结: ① 在MyAnnotation上声明@Repeatable成员值为MyAnnotations.class

            ② MyAnnotation的Target和Retention等元注解与MyAnnotations相同 

 2.ElementType.TYPE_USE

同上方法同理在MyAnnotation中可使用的类型中加入ElementType.TYPE_USE

import java.lang.annotation.*;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;@Inherited
@Repeatable(MyAnnotations.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE,TYPE_PARAMETER,TYPE_USE})
public @interface MyAnnotation {String value() default "hello";
}

 使用:

class Generic<@MyAnnotation T>{public void show() throws @MyAnnotation RuntimeException{ArrayList<@MyAnnotation String> list = new ArrayList<>();int num = (@MyAnnotation int) 10L;}}

感谢观看!!!

相关内容

热门资讯

今年最大黄金杀猪盘,老板跑路卷... 来源|易简财经作者 | 陈璐瑶6月3日,据报道,从杭州上城区分局经侦队获悉,浙江永坤控股有限公司(简...
原创 一... 前言: 5.12日一大早上,中国有两个好消息振奋人心! 第一个就是中国和美国在瑞士会谈的很有成效...
原创 你... 最近中国明确警告韩国,如果再把从中国进口的稀土加工成产品卖给美国军工企业及受到中国制裁的企业,那中国...
新消费周报 | 泡泡玛特市值超... 《CBNData新消费周报》精选本周新消费领域最新动态,公司头条、消费风向、营销动态、可持续消费一文...
事关人民币国际化,中国银行这份... 文/夏宾人民币国际化这件大事近来好消息频传。刚刚过去的5月份,中国央行先后与巴西、印度尼西亚央行签署...
原创 不... 据环球时报报道,经白宫证实,美国“政府效率部”负责人马斯克已在近日晚开始办理离职,整个流程快速且毫无...
金融政策协同发力,破解小微企业... 中国商报(记者 马文博)一直以来,小微企业都是经济新动能培育的重要源泉,在推动经济增长、促进就业增加...
“应降息100个基点”,特朗普... 中国商报(记者 赵熠如)6月7日上午,2025年全国高考开考。首场语文科目考试结束后,作文试题受到广...
软件开发板块三大牛股:路桥信息... 路桥信息的股价近日大幅上涨本报(chinatimes.net.cn)记者叶青 见习记者 胡振明 北京...
新集能源股东新集煤电2120万... 雷达财经 文|冯秀语 编|李亦辉 6月6日,新集能源(601918)发布公告称,其持股5%以上股东安...
饶毅再发文批麦角硫因 科伦永年... 转自:贝壳财经 新京报贝壳财经讯(记者丁爽)6月6日,围绕“麦角硫因是‘假药’”观点,饶毅、科伦药业...
基金行业的“老谢” 基金行业的... 有些事情,来得总比预期得快。尽管很早就知道交银施罗德基金总经理谢卫今年要退休了,但看到他辞任总经理的...
黄牌警告撤销了,国资却笑不出来... *ST威帝申请撤销黄牌获得批准,6月4日起恢复为威帝股份,这本来是件值得高兴的事,不过,作为实控人的...
恒立液压大宗交易成交213.4... 恒立液压6月6日大宗交易平台出现一笔成交,成交量3.00万股,成交金额213.45万元,大宗交易成交...
鸿蒙版微信新功能爆棚,鸿蒙生态... 鸿蒙版微信,这款自2025年初在鸿蒙系统上线的国民级应用,每一次更新都牵动着广大用户的心弦。自1月9...
天风证券定增获证监会同意批复 ... 6月6日,天风证券(601162)发布公告称,收到中国证券监督管理委员会出具的《关于同意天风证券股份...
江苏定了!提高退休人员养老金,... 江苏定了!2025年继续提高退休人员养老金,农民基础养老金也要涨。日前,江苏省政府发布了《江苏省实施...
被说成是“影视公司”,众擎机器... 红星资本局6月7日消息,“前段时间我们和宇树被外界定义成‘影视公司’,没关系我觉得挺开心,影视也是行...
商务部:中欧双方电动汽车案价格... 红星资本局6月7日消息,今日,商务部新闻发言人就王文涛部长赴法国期间与欧盟委员会贸易和经济安全委员谢...
每周股票复盘:七彩化学(300... 截至2025年6月6日收盘,七彩化学(300758)报收于15.41元,较上周的15.46元下跌0....
独立管理的产品全部正收益,他是... 导读:在访谈博时基金田俊维之前,我们已经对他做了多年的跟踪。田俊维2024和2025连续两年入围我们...
上市金融科技公司一季度业绩飘红... 上市金融科技公司近日陆续交出一季度成绩单,业绩整体呈现向好态势。在政策驱动消费回暖的背景下,今年一季...
“吃不动”的桃李面包 吃不动的... 如何让消费者“吃得动”?“面包第一股”的增长剧本,为何正在急转直下?作为中国食品工业化的代表性样本,...
黄金,猛跌!机构:可能面临较大... 当地时间6月6日,因市场降低对美联储今年降息的押注,美国国债收益率和美元上涨, 国际金价下跌,纽约商...
中国海外发展:前5月销售额90... 6月6日,中国海外发展(00688.HK)发布未经审核运营数据,5月,中国海外系列公司的销售金额约2...
章俊:稳定币走出丛林 章俊近况... 章俊 系中国银河证券董事总经理、首席经济学家兼研究院院长、中国首席经济学家论坛理事核心观点加密货币里...
沈阳18栋别墅400万起拍,被... 红星资本局6月7日消息,近日,沈阳市苏家屯区的18栋别墅在阿里资产·司法页面进行拍卖,起拍价为399...
港口区“政银联动”创新年报服务... 为切实解决市场主体年报填报难题,近期,防城港市港口区市场监督管理局联合桂林银行开展“暖心服务进商户”...
上交所将推动上市公司加大分红力... 新华社北京6月7日电 《中国证券报》7日刊发文章《上交所将推动上市公司加大分红力度》。文章称,6月6...
搭乘脑机接口热点,股价涨停!炒... 本报(chinatimes.net.cn)记者张斯文 于娜 北京报道近日,马斯克的脑机接口公司Neu...