本站业务范围:1、PC端软件开发、网站开发 2、移动端APP、网站、微信接口、微商城开发 3、视频教程、课程设计和辅导 4、单片机开发 5、串口通讯调试
 当前位置:文章中心 >> Java_Jsp_Jdk_eclipse_tomcat
立即购买视频教程 Java注释的使用和定义
夜鹰教程网 来源:www.yyjcw.com 日期:2016-11-29 15:14:19
元数据从 metadata 一词译来,就是 “ 关于数据的数据 ” 的意思。越来越的开源框架都提供了 “ 元数据 ” 支持了,其实也就是注释支持。今天系统学习一下 Java 注释 (Java 元数据 ) 。本文内容不限于 Javadoc 的注释。

这篇文章不能解决你的问题?我们还有相关视频教程云课堂 全套前端开发工程师培训课程

微信号:yyjcw10000 QQ:1416759661  远程协助需要加QQ!

业务范围:视频教程|程序开发|在线解答|Demo制作|远程调试| 点击查看相关的视频教程

技术范围:全端开发/前端开发/webapp/web服务/接口开发/单片机/C#/java/node/sql server/mysql/mongodb/android/。 



元数据从 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 注释进行了总结。

复制链接 网友评论 收藏本文 关闭此页
上一条: Java Web三层架构的配置详解  下一条: JAVA开发者最常去的20个英文网站
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  推荐教程/优惠活动

  热门服务/教程目录

  夜鹰教程网  新手必看,详细又全面。
  夜鹰教程网  购买教程  夜鹰教程网  在线支付-方便
  夜鹰教程网  担保交易-快捷安全   夜鹰教程网  闪电发货
  夜鹰教程网  电话和QQ随时可以联系我们。
  夜鹰教程网 不会的功能都可以找我们,按工作量收费。

客服电话:153 9760 0032

购买教程QQ:1416759661  
  热点推荐
初学教程:Java Socket网络编程浅…
Java随机数总结
java读取文本文件内容并获取文件大…
字节流和字符流Java
java常用图片读写程序
怎样成为一个优秀的Java程序员
C++程序员转Java容易吗?难点在哪…
思科培训与华为培训在教材和内容方…
Java注释的使用和定义
使用 Java 实现 Comet 风格的 Web…
利用Java实现zip压缩/解压缩
Java Web三层架构的配置详解
Java Socket编程之我见
使用 Java 实现 Comet 风格的 Web…
两种J2ME网络编程的方法之一
  尊贵服务
夜鹰教程网 承接业务:软件开发 网站开发 网页设计 .Net+C#+VS2008+MSsql+Jquery+ExtJs全套高清完整版视频教程
  最近更新
short、int、long、float、double…
二进制(原码、反码、补码)
python时间模块详解
java 解决split分割空值不能得到的…
如何打开eclipse安卓开发代码提示…
php实现大文件断点续传功能
java实现断点续传功能
Windows Server 2016新功能
MyEclipse 8.5 汉化方法
jquery实现无刷新分页
什么是JSON?
什么是回调函数
jQuery 1.7下载
jquery加载XML文档
什么是MVC(三层架构)
  工具下载  需要远程协助? 

sql2008视频教程 c#视频教程

VIP服务:如果您的某个功能不会做,可以加我们QQ,给你做DEMO!

JQUERY  Asp.net教程

MVC视频教程  vs2012
.NET+sql开发
手机:15397600032 C#视频教程下载
微信小程序 vue.js高级实例视频教程

教程咨询QQ:1416759661


这篇文章不能解决你的问题?我们还有相关视频教程云课堂 全套前端开发工程师培训课程

微信号:yyjcw10000 QQ:1416759661  远程协助需要加QQ!

业务范围:视频教程|程序开发|在线解答|Demo制作|远程调试| 点击查看相关的视频教程

技术范围:全端开发/前端开发/webapp/web服务/接口开发/单片机/C#/java/node/sql server/mysql/mongodb/android/。 



关于我们 | 购买教程 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3