java字段注解类型数组_Java注解用法
Java注解用法
注解元素的提供值必须是编译时常量表达式,不能使用null作为注解中任何类型元素的值。
基本类型
注解类型中的元素的数据类型可以是任何基本数据类型:byte,short,int,long,float,double,boolean 和 char。
Version注释类型声明两个元素:major和minor,并且都是int数据类型。
以下代码声明了注解类型:
public @interface MyAnnotation {
byte a();
short b();
int c();
long d();
float e();
double f();
boolean g();
char h();
}
@MyAnnotation(a=1, b=2, c=3, d=4, e=12.34F, f=1.89, g=true, h='Y')
可以使用编译时常量表达式来指定注解元素的值。以下两个版本注释实例有效的:
@Version(major=2+1, minor=(int)13.2)
@Version(major=3, minor=13)
字符串类型
可以在注释类型中使用String类型的元素。以下代码定义了名为Name的注解类型。 它有两个元素:first和last,它们都是String类型。
public @interface Name {
String first();
String last();
}
@Name(first="Tom", last="Smith")
public class NameTest {
@Name(first="Jack", last="Iaan")
public void aMethod() {
}
}
在String类型的元素的值表达式中使用字符串连接+运算符是有效的。
@Name(first="Ja" + "ck", last="Ia" + "an")
Class类型
以下代码显示如何使用Class类型作为注解值。
import java.io.IOException;
@interface MyAnnotation {
Class extends Throwable> willThrow() default java.lang.Throwable.class;
}
public class Main {
@MyAnnotation(willThrow = IOException.class)
public static void testCase1() {
// Code goes here
}
@MyAnnotation()
public static void testCase2() {
}
}
枚举类型
注解可以具有枚举类型的元素。
enum Level {
PENDING, FAILED, PASSED;
}
@interface Review {
Level status() default Level.PENDING;
String comments() default "";
}
@Review(status = Level.PASSED)
public class Main {
}
注解类型
可以使用注解类型作为另一个注解类型的声明内的元素的类型。要为注解类型的元素提供值,请使用用于创建注解类型实例的语法。
@interface Name {
String first();
String last();
}
@interface Version {
int major();
int minor() default 0; // zero as default value for minor
}
@interface Description {
Name name();
Version version();
String comments() default "";
}
@Description(name = @Name(first = "Tom", last = "Smith"), version = @Version(major = 1, minor = 2), comments = "Just a test class")
public class Main {
}
注解可以具有数组类型的元素。数组类型可以是以下类型之一:
原始类型
java.lang.String类型
java.lang.Class类型
枚举类型
注解类型
需要在大括号中指定数组元素的值。数组的元素由逗号分隔。
@interface ItemList {
String[] items();
}
@ItemList(items = { "A", "B" })
public class Main {
}
如果数组中只有一个元素,则允许省略括号。
@ToDo(items={"A"})
@ToDo(items="A")
传递一个空数组
@ToDo(items={})
速记注解语法
假设有一个注释类型如下。
public @interface Enabled {
boolean status() default true;
}
要使用带有默认值的Enabled注解类型注释程序元素,可以使用status元素指定值,因为它具有默认值。可以进一步省略括号。
@Enabled
public class Main {
}
@Enabled()
public class Main {
}
只有一个元素的注解类型有速记语法。如果注释类型只有一个具有命名值的元素,可以省略name = value对中的名称。以下代码声明了 Company 注解类型,它只有一个名为value的元素:
public @interface Company {
String value();
}
当使用 Company 注释时,可以省略name = value对的名称。
@Company(value="Inc.")
public class Test {
}
变成 -
@Company("Inc.")
public class Test {
}
以下代码显示了如果元素数据类型是数组,如何使用缩写。
public @interface Item {
String[] value();
}
@Item({"A", "B"})
public class Test {
}
如果在数组注释类型中只指定一个元素,可以进一步省略括号。
@Item("A")
public class Test {
}
如果在使用注释时只提供一个值,则元素的名称为假设那个值。
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。
java字段注解类型数组_Java注解用法相关推荐
- Java中char类型数组打印数组名输出结果不是地址值
Java中其他类型数组打印数组名,输出结果都是内存地址 Java中char类型数组打印数组名,输出结果不是内存地址 char类型的数组就相当于一个字符串. 因为输出流System.out是PrintS ...
- java通过注解修改字段名_java注解之运行时修改字段的注解值操作
java注解之运行时修改字段的注解值操作,注解,字段,表头,属性,对象 java注解之运行时修改字段的注解值操作 易采站长站,站长之家为您整理了java注解之运行时修改字段的注解值操作的相关内容. 今 ...
- java 注解报错_java注解验证接收参数 返回注解字段的错误
1.在controller接口方法接收参数加上 @Valid注解 并且在实体类参数后紧跟 BindingResult bindingresul BindingResultMsgUtil工具类: pub ...
- java注解详解_Java注解详解
Annotation是从JDK5.0开始引入的新技术. Annotation的作用:–不是程序本身,可以对程序作出解释.(这一点,跟注释没什么区别)–可以被其他程序(比如:编译器等)读取.(注解信息处 ...
- java注解的反射_Java注解与反射
概要 本文主要是总结Java注解与反射的相关知识,加深自己对Java类动态语言的理解,同时为日后学习Spring打下基础. 注解: 什么是注解 Annotation的作用 不是程序本身,但是可以对程序 ...
- java注解使用变量_java注解的使用
java中注解的使用 1.说再前面 使用注解开发的好处 1.使代码更加干净易读,易于维护修改.比如,以前使用spring的开发,都是基于xml文件实现了统一的配置管理,但是缺点也是显而易见的,就是随着 ...
- java注解怎么写_java注解
写在前面 现在的java主流框架中,注解无处不在,因此我们完全有必要搞明白注解到底是什么.如何理解注解,它到底是怎么起作用的. 注解的定义 java是这样定义注解的:Java 注解用于为 Java 代 ...
- java interface作用是什么_Java注解总结:史上最全,有这一篇就够了
什么是注解? 注解的定义 官网描述如下: Java 注解用于为 Java 代码提供元数据.作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的.Java 注解是从 Jav ...
- java 注解与反射_Java注解与反射直接上手
什么是注解(Annotation) 注解顾名思义为注释.讲解,可以理解为一种标签或标记,可以用在类.方法或者域上.向类.方法等添加注解,相当于给他们贴上了一层标签. 注解使用 在使用注解时,在类名.方 ...
最新文章
- lightgbm保存模型参数
- 训练时间和参数量百倍降低,直接使用标签进行预测,性能竟超GNN
- 单片微型计算机与一般微型计算机相比,单片机习题与思考题.doc
- MySQL 8.0 CentOS 7安装手册
- netty系列之:文本聊天室
- git小乌龟一次性设置密码
- 京东让员工参观看守所;华为电视面世;苹果市值重回全球第一 | 极客头条
- Poj2259 Team Queue 【队列】
- Python学习手册--第一部分(使用入门)
- 计算机音乐apple,Apple Music苹果音乐电脑版
- Flash cs3教程-传统数字动画
- POJ 2387.Til the Cows Come Home
- web.xml文件详解
- 波兰计算机留学,波兰(Rzeczpospolita Polska)留学申请全面解析
- Alfresco文档管理系统 文档
- 郭涛 黄渤 田原09贺岁大片《高兴》DVD修正版
- 重庆大学计算机学院毕业设计题目,图像处理毕业设计题目.docx
- 什么pdf转换成word转换器在线好
- Linux查看某个用户账号过期信息
- TI电量计--BQ34Z100踩坑总结