Java基础知识_注解

JAVA注解

Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件中出现。

@Deprecated的作用是对不应该在使用的方法添加注解,当编程人员使用这些方法时,将会在编译时显示提示信息


一,简单注解:
@SuppressWarnings,其参数有:
deprecation,使用了过时的类或方法时的警告
unchecked,执行了未检查的转换时的警告
fallthrough,当 Switch 程序块直接通往下一种情况而没有 Break 时的警告
path,在类路径、源文件路径等中有不存在的路径时的警告
serial,当在可序列化的类上缺少serialVersionUID 定义时的警告
finally ,任何 finally 子句不能正常完成时的警告

all,关于以上所有情况的警告

@Target 

    表示该注解用于什么地方,可能的 ElemenetType 参数包括:

    ElemenetType.CONSTRUCTOR 构造器声明
    ElemenetType.FIELD 域声明(包括 enum 实例)
    ElemenetType.LOCAL_VARIABLE 局部变量声明
    ElemenetType.METHOD 方法声明2013/5/12
    ElemenetType.PACKAGE 包声明
    ElemenetType.PARAMETER 参数声明
    ElemenetType.TYPE 类,接口(包括注解类型)或enum声明

 

    @Retention

    表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:
    RetentionPolicy.SOURCE 注解将被编译器丢弃
    RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃
    RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。

    @Documented:将此注解包含在javadoc中


    @Inherited:允许子类继承父类中的注解



@override重写
@overlord重载

二,注解的定义与反射调用
 
注解就相当于你的源程序中要调用的一个类,要在源程序中应用某个注解,要先准备好这个注解类。就像你要调用哪个类,得先有开发好的这个类。


我们先来建立一个简单的注解:
package cn.itcast.day2;

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

@Retention(RetentionPolicy.RUNTIME)
/*上面的这个叫做元注解,因为注解在编译和运行过程中是否保留均有说法,且默认是只保留到class文件,所以为了看到运行结果,我们将它修改成runtime,意思是保留到运行时*/
public @interface ItcastAnnotation {

}


然后我们来用他注解一个类:
package cn.itcast.day2;

@ItcastAnnotation
public class AnnotationTest {

public static void main(String[] args) {
// TODO 自动生成的方法存根

if (AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){

ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
System.out.println(annotation);
}
}
}

输出结果为:@cn.itcast.day2.ItcastAnnotation()


三,为注解增加各种属性


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值