博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java注解(一)
阅读量:6690 次
发布时间:2019-06-25

本文共 1925 字,大约阅读时间需要 6 分钟。

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

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

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

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

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

一、常用注解

① @Override注解

package java.lang;import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}

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

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

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

 

② @Deprecated注解

package java.lang;import java.lang.annotation.*;@Documented@Retention(RetentionPolicy.RUNTIME)public @interface Deprecated {}

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

 

③ @SuppressWarnings注解

package java.lang;import java.lang.annotation.*;import java.lang.annotation.ElementType;import static java.lang.annotation.ElementType.*;@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})@Retention(RetentionPolicy.SOURCE)public @interface SuppressWarnings {    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 允许子类继承父类中的注解

 

 

 

 

转载于:https://www.cnblogs.com/yejg1212/p/3187362.html

你可能感兴趣的文章
递归再一次让哥震惊了
查看>>
oracle之检查点(Checkpoint)
查看>>
分析无线遥控器信号并制作Hack硬件进行攻击
查看>>
JSONObject 自定义过滤配置
查看>>
Hive job,抛错java.io.FileNotFoundException:/.../container_000001(Is a directory)
查看>>
海量数据查询
查看>>
类的this指针有以下特点
查看>>
mysql主主互备架构
查看>>
驱动学习之gpiolib的建立过程
查看>>
利用NSX搭建专有子网
查看>>
网页特殊符号HTML代码大全
查看>>
Zabbix 3.0 监控MySQL
查看>>
Storm 环境部署及简单使用
查看>>
nfs客户端挂载出错 mount.nfs access denied by server while mounting
查看>>
linux集群之LVS入门和企业级实战(续二)
查看>>
DataGuard physical standby创建与维护
查看>>
*8 脚本小练习
查看>>
[原创]windows server 2012 AD架构 试验 系列 – 10 AD域和站点部署(1)
查看>>
nginx StubStatus模块
查看>>
安装ipython报错"ImportError: No module named shutil_get_terminal_size"
查看>>