---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、注解的概述
注解相当于一种标记,在程序中加入了注解就等于为程序打上了某种标记,没加,则等于没有某种标记。开发工具和其他程序都可以用反射来了解类及各种元素上有五标记,及查看标记种类,然后去做相对应的事情。
注解可以加在包、类、字段、方法、方法的参数以及局部变量上。
二、注解的应用结构图
三、Java提供的几个基本注解
1、@SuppressWarnings 的应用
通过System.runFinalizersOnExit(true); 编译器会发出警告
这时候只需要加上@SuppressWarnings(“deprecation”) 表示禁止警告(过期)。
2、@Deprecated
在方法上面加@Deprecated表示该方法过期,不建议试用。
3、@Override
@Override表示下边的方法是继承父类方法,对其覆盖。
四、自定义注解及其应用
1、定义一个简单的注解
<span style="font-size:18px;"><span style="white-space:pre"> </span>public @interface MyAnnotation{}</span>
2、将定义的注解应用在类中
<span style="font-size:18px;"><span style="white-space:pre"> </span>@ MyAnnotation
<span style="white-space:pre"> </span>public Class AnnotationTest{
<span style="white-space:pre"> </span>}</span>
3、用反射进行测试AnnotationTest类的定义是否有@MyAnnotation
根据测试结果引出了@Retention元注解,元注解有三个值,分别是:
1>、RetetionPolicy.SOURCE 对应java源文件即编译时期
2>、RetetionPolicy.CLASS 对应Class文件
3>、RetetionPolicy.RUNTIME 对应内存中的字节码文件,即运行时期
4、@Target元注解
@Target的默认值为任何元素,设置Target等于ElementType.METHOD,原来加在类上的注解就报错了,改为用数组方式设置{ElementType.METHOD, ElementType.TYPE}就可以了。
元注解及其枚举属性值都在java.lang.annptation包下面的类中。
五、为注解增加基本属性
1、我们知道注解的声明和接口类似,那么,我们也可以为其添加属性
从java语言规范中得知,对于注解的属性类型有限制,只能是8个基本类型、String类型、Enum类型、Annotation注解类型和Class类型。
<span style="font-size:18px;"><span style="white-space:pre"> </span>public @interface MyAnnotation{
<span style="white-space:pre"> </span>String name() default "张三"; //添加String类型的属性,并设置默认(缺省)值为 张三。</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>int[] arr() defauult {1,2,3,4,5};<span style="white-space:pre"> </span>//添加数组类型的属性,并设置默认(缺省)值。
<span style="white-space:pre"> </span>}</span>
2、添加了属性值的注解使用方法
@MyAnnotation(name = "张三", arr = {1,2,3,4,5})
如果数组属性中只有一个元素,这时候属性值部分可以省略大括号。
3、枚举和注解类型的属性
枚举和注解都是特殊的类,不能用new创建他们的实例对象,创建枚举的实例对象就是在其中添加元素。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
详细请查看:www.itheima.com