java rawtypes_Java注解(一)

Java从JDK 5开始引入注解(annotation)。

注解使得Java源代码中不但可以包含功能性的实现代码,还可以添加元数据。

注解的功能类似于代码中的注释,所不同的是注解不是提供代码功能的说明,而是实现程序功能的重要组成部分。

Java注解已经在很多框架中得到了广泛的使用,用来简化程序中的配置。

下面先来看看java中常用的注解。

一、常用注解

① @Override注解

packagejava.lang;import java.lang.annotation.*;@Target(ElementType.METHOD)

@Retention(RetentionPolicy.SOURCE)public @interfaceOverride {

}

@Override注解表示子类要重写父类的对应方法。

如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。

顺便说一句:@override注解在JDK 5环境下只能用于对继承的类的方法的重写,实现接口中的方法不能用@override注解。但是JDK1.6可以。

② @Deprecated注解

packagejava.lang;import java.lang.annotation.*;

@Documented

@Retention(RetentionPolicy.RUNTIME)public @interfaceDeprecated {

}

@Deprecated注解表示方法是不被建议使用的。

③ @SuppressWarnings注解

packagejava.lang;import java.lang.annotation.*;importjava.lang.annotation.ElementType;import static java.lang.annotation.ElementType.*;

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})

@Retention(RetentionPolicy.SOURCE)public @interfaceSuppressWarnings {

String[] value();

}

@SuppressWarnings注解表示抑制警告。

例如下面的代码,声明了2个未使用的变量,加上2个@SuppressWarnings来抑制警告。

@SuppressWarnings("unused")int a=10;

@SuppressWarnings({"rawtypes", "unused"})

List list=new ArrayList();

上面给出了Java自带的几个常用的注解,下面先来了解下代码中出现的诸如@Target,@Retention,@Documented(这些也叫元注解)的意义。

二、元注解

① @Target

@Target 表示该注解用于什么地方,可取的值包括:

ElemenetType.CONSTRUCTOR       构造器声明

ElemenetType.FIELD          域声明(包括 enum 实例)

ElemenetType.LOCAL_VARIABLE     局部变量声明

ElemenetType.METHOD         方法声明

ElemenetType.PACKAGE         包声明

ElemenetType.PARAMETER       参数声明

ElemenetType.TYPE          类,接口(包括注解类型)或enum声明

ElementType.ANNOTATION_TYPE     注解

② @Retention

@Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:

RetentionPolicy.SOURCE       注解将被编译器丢弃

RetentionPolicy.CLASS        注解在class文件中可用,但会被VM丢弃

RetentionPolicy.RUNTIME       JVM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。

③ @Documented

@Documented 将此注解包含在 javadoc 中

④ @Inherited

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值