注解-24

注解

注解概述

  • 注解主要起到标识作用,是JDK5.0提出的,Java增加对元数据的支持,也就是Annotation(注解)。
  • 引用Annotation的概念来描述元数据

什么是元数据

  • 元数据是用来描述数据的数据,通俗一点来说,就是描述代码间的关系,或者代码与
    其他资源(数据库)之间内在联系的数据。
  • 举例:struts来说,元数据指的就是struts-config.xml;对hibernate来说就是hbm文件;
  • 如何创建元数据?
    • JDK5.0出来后,Java语言提出了四种类型:类(class)、枚举(enum)、接口(interface)和注解(@interface),它们处在用一个级别。Java就是通过注解来表示元数据的。

常用三个基本注解

  • @Override:限定重写父类的方法,该注解只能用于方法
  • @Deprecated:用于表示某个程序中元素(类、方法等)已过时
  • @SupperessWarnings:抑制编译器警告
  • @SuppressWarnings(“抑制的警告的具体类型”):
    • @unused:变量未使用
    • @deprecation:使用了不赞成使用的类或方法时的警告
    • @unchecked:执行了未检查的转换时的警告。比如没有使用泛型
    • @falthrough:当switch程序块直接通往下一种情况而没有break时的警告
    • @path:在类路径、源文件路径等中有不存在的路径时的警告。
    • @serial:当在可序列化雷尚缺少serialVersionUID定义时的警告
    • @finally:任何finally子句不能正常完成时的警告。
    • @all:关于以上所有情况的警告。

注解分类

(1)按照运行机制划分:
  源码注解:只在源码中存在,编译成.class文件就不存在了。
  
  编译时注解:在源码和.class文件中都存在,像@Override、@Deprecated,他们都属于编译时注解。
  
  运行时注解:在运行阶段才起作用,甚至会影响运行逻辑的注解。象@Autowired自动注入属于运行时
  注解,会在运行阶段将你的成员变量自动的注入进来。
  
(2)按照来源划分
  来自JDK的注解
  来自第三方的注解
  自定义的注解
  
(3)元注解
  元注解就是给注解进行注解,可以理解位注解的注解就是元注解。
  @Retention:说明该注解的生命周期
   RententionPolicy.CLASS:指注解只保留一个class文件中
   RententionPolicy.SOURCE:指定注解只保留在一个源文件中
   RententionPolicy.RUNTIME:指定注解可以保留在程序运行期间
  @Documented:文档注解
  @Inherited:被他修饰的注解将具有继承性,如果某个类使用被该注解修饰的注解,则它的子类将自动具有该注解。
  @Target: 作用域
   ElementType.TYPE:说明该注解只能被声明在一个类前。
   ElementType.FIELD:说明该注解只能被声明在一个类的字段前。 
   ElementType.METHOD:说明该注解只能被声明在一个类的方法前。
   ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前。
   ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前。 
   ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前。
   ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前。
   ElementType.PACKAGE:说明该注解只能声明在一个包名前。

自定义注解

  语法格式   @interface
  
  1.成员类型受限,合法类型  基本数据类型,String,Class Annotation,等
  
   2.如何注解只有一个成员,则成员名必须为value(),在使用时候可以忽略成员名和赋值号(=)
   
   3.注解类可以没有成员,没有成员注解称为标识注解
   
    注解按照是否有值可以分为三类,分别是  标记注解  、  单值注解  、  完全注解  。
  
发布了91 篇原创文章 · 获赞 7 · 访问量 2469
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览