zoukankan      html  css  js  c++  java
  • Java元数据总结:Java注释的使用和定义

    元数据从metadata一词译来,就是“关于数据的数据”的意思。越来越的开源框架都提供了“元数据”支持了,其实也就是注释支持。今天系统学习一下Java注释(Java元数据)。本文内容不限于Javadoc的注释。
      1.什么是Java元数据,有什么作用?
      元数据,就是“关于数据的数据”。功能也有很多啦。你可能用过Javadoc的注释自动生成文档。这就是元数据功能的一种。总的来说,元数据可以用来创建文档,跟踪代码的依赖性,执行编译时格式检查,代替已有的配置文件(如Hibernate也提供了注释配置)
      注释有3中基本类型
      a.标记注释 --没有变量,只有名称标识。例如 @annotation
      b.单一值注释 --在标记注释的基础上提供一段数据。如 @annotation(“data”)
      c.完整注释 --可以包括多个数据成员,每个数据成员由名称和值构成。
      @annotation(val1="data1",val2="data2")
      2.Java的“注释”
      Java中提供3个内置注释类型
      a. Override ,只能用于方法(不能用于类,包声明或者其他构造)
      作用:可以保证编译时候Override函数的声明正确性
      用法:@Override
      public void fun(){..}
      b.Deprecated 同样只能作用与方法
      作用:对不应再使用的方法进行注解
      用法:@Deprecated public void fun{...} //它们说这个注释跟函数要同一行
      c.SupressWarnings 可以注释一段代码
      作用:关闭特定的警告信息,例如你在使用泛型的时候未指定类型
      用法: @SupressWarnings(value={"unchecked"})
      ..代码
      Java中还提供了四种元注释,专门负责注释其他的注释
      @Target 表示该注释可以用于什么地方。可用的ElementType参数包括:
      CONSTRUCTOR : 构造器的声明
      FIELD : 域声明(包括enum实例)
      LOCAL_VARIABLE : 局部变量声明
      METHOD : 方法声明
      PACKAGE : 包声明
      PARAMETER : 参数声明
      TYPE : 类、接口 (包括注解类型) 或enum声明
      @Retention 表示需要在什么级别保存该注释信息。可选的RetentionPoicy参数包括:
      SOURCE : 注释将被编译器丢掉
      CLASS : 注释在class文件中可用,但会被VM丢弃
      RUNTIME : VM将在运行时也保留注释,因此可以通过反射机制读取注释的信息。
      @Documented 将注释包含在JavaDoc中
      @Inheried 允许子类继承父类中的注释。
      3. 在Java中定义自己的注释
      Java语言支持一种新的类型——注释类型(annotation type),跟普通类差不多,在类中以符号( @ )的形式注释其他 Java 代码
      下面将通过一个简单的例子来实现(代码是Brett McLaughlin 的)
      @interface 申明
      i.简单的注释类型
      package com.oreilly.tiger.ch06; /** * Marker annotation to indicate that a method or class * is still in progress. */ public @interface InProgress { }
      ii.使用定制的注释类型
      @com.oreilly.tiger.ch06.InProgress public void calculateInterest(float amout,float rate) { //Need to finish this method later }
      iii.添加成员
      package com.oreilly.tiger.ch06; /** * Marker annotation to indicate that a method or class * is still in progress. */ public @interface InProgress { String value(); } @com.oreilly.tiger.ch06.InProgress @TODO("Figure out the amount of interest per month") //或者@TODO(value="Figure out the amount of interest per month") public void calculateInterest(float amount,float rate) { }
      iv.设置默认值
      package com.oreilly.tiger.ch06; public @interface GroupTODO { public enum Serverity { CRITICAL,IMPORTANT,IRIVIAL,DOCMENTATION }; Severity severity() default Severity.IMPORTANT; String item (); String assignedTo(); String dateAssigned(); } }
      v.使用默认值
      @com.oreilly.tiger.ch06.InProgress @GroupTODO( item="Figure out the amount of interest per month", assignedTo = "Brett McLaughlin", dateAssigned = "08/04/2004" ) public void calculateInterest(float amount, float rate) { //Need to finish this method later }
      vi.改写默认值
      @com.oreilly.tiger.ch06.InProgress @GroupTODO { severity = GroupTODO.Severity.DOCUMENTATION, item = "Need to explain how this rather unusal method works", assignedTo = "Jon Stevens", dateAssigned = "07/30/2004" }
      这样就对Java元数据/Java注释进行了总结。
  • 相关阅读:
    geoserver发布地图服务WMTS
    geoserver发布地图服务WMS
    geoserver安装部署步骤
    arcgis api 3.x for js 入门开发系列十四最近设施点路径分析(附源码下载)
    arcgis api 3.x for js 入门开发系列十三地图最短路径分析(附源码下载)
    cesium 之自定义气泡窗口 infoWindow 后续优化篇(附源码下载)
    arcgis api 3.x for js 入门开发系列十二地图打印GP服务(附源码下载)
    arcgis api 3.x for js 入门开发系列十一地图统计图(附源码下载)
    arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)
    arcgis api 3.x for js入门开发系列九热力图效果(附源码下载)
  • 原文地址:https://www.cnblogs.com/jacktu/p/1790209.html
Copyright © 2011-2022 走看看