全面解析Java中的注解与注释java

Annotation,准确的翻译应该是--注解。和注释的作用完全不一样。Annotation是JDK5.0及以后版本引入的一个特性。与类、接口、枚举是在同一个层次,可以成为java的一个类型。语法是以@开头简单来说,注释是程序员对源代码的类,方法,属性等做的一些记忆或提示性描述(比如这个方法是做什么用的),是给人来看的。注解则是Java编译器可以理解的部分,是给编译器看的。举个简单的例子来看一下注解的使用和作用。@Override是比较常见的Java内置注解,它的作用就是在编译代码的时候检查子类中定义的方法是否正确。

packageannotation;publicabstractclassAnimal{publicabstractvoideat();}packageannotation;publicclassCatextendsAnimal{@Overridepublicvoideat(Stringfood){}}这里在子类Cat中eat方法被注解为覆写父类的方法,但是却比父类方法多出一个参数。如果是在Eclipse在编辑的话,直接就会有红色叉叉提示。(代码编译会通不过)。如果去掉@Override的注解的话,编译没问题,但是Cat中eat方法就是这个类的一个新的方法了,而不是从父类继承的了。

2.@Override

3.@SuppressWarnings忽略警告。如果你的code在转型或其他的部分有一些警告的话,但是你又想忽略这些警告,就可以使用这个注解了。1)deprecation使用了不赞成使用的类或方法时的警告

2)unchecked执行了未检查的转换时警告

3)fallthrough当使用switch操作时case后未加入break操作,而导致程序继续执行其他case语句时出现的警告

4)path当设置一个错误的类路径、源文件路径时出现的警告

5)serial当在可序列化的类上缺少serialVersionUID定义时的警告

6)fianally任何finally子句不能正常完成时警告

7)all关于以上所有情况的警告

packageannotation;importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.annotation.Inherited;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Target(ElementType.METHOD)public@interfaceMyAnnotation{Stringvalue();}@Retention(RetentionPolicy.SOURCE)@interfaceMyAnnotation1{}@Retention(RetentionPolicy.CLASS)@interfaceMyAnnotation2{}@Retention(RetentionPolicy.RUNTIME)@interfaceMyAnnotation3{}@Documented@interfaceMyAnnotation4{}@Inherited@interfaceMyAnnotation5{}四、使用例子:

packageannotation;importjava.lang.annotation.Annotation;@MyAnnotation3publicclassTestAnnotation{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubAnnotationannotation=TestAnnotation.class.getAnnotation(MyAnnotation3.class);System.out.println(annotation.toString());}}打印出结果:@annotation.MyAnnotation3()以上例子如果替换使用MyAnnotation1和MyAnnotation2的话,则取到的annotation的值为空,这就是RetentionPolicy不同的差别。

五、Annotation的作用

介绍到此,可以总结一下Annotation的作用了。基础的大致可以分为三类:1.编写文档2.代码分析3.编译检查但是,开源框架对其赋予了更多的作用比如:Hibernate,注解配置,

@Column("aa")privateStringxx;这个类似于XML配置,简化程序中的配置相对与把一部分元数据从XML文件移到了代码本身之中,在一个地方管理和维护。内部如何实现的?--java反射机制,类似与以上例子。

注释虽然注解、注释只相差一个字,但是用法就差异很大。还是那句话,注解给编译器看,注释是给人看的。基于此的话,对于一个方法来说:1.把这个方法的作用,输入,输出描述清楚就可以了,更多的可以加上一些作者呀,版本呀这样一些信息2.注释编排的美观一些做到这两点应该就可以了。举个例子:

/********************************************************************************NAME:usage*DESCRIPTION:XXX*ARGUMENTS:N/A*RETURN:*AUTHOR:oscar999*VERSION:V0.1*******************************************************************************/看上去这是一个不错的注释^^.

但是对于Java语言来说,注释被赋予了更多的功能。就是你可以使用javadoc这个功能把代码中的注释导出到html的文件中。如果你的代码是共用性很高的代码的话,这份文档就是一份API的参考文档,类似JavaAPI.所以,要产生出这样的文档,就要遵循java定义的一些注释规范,才能产生出规范的文档出来。

一、Java类方法的标准注释还是从类的方法的注释说起。

第一个句号前面的部分,也就是“Readalineoftext.”会出现在“方法摘要”中

2.@param定义的是方法的输入参数,(可以添加多个)出现在“方法详细信息”中。(参数和参数描述之间使用空格隔开,在产生的文档中转成了-)

3.@return返回值的描述4.@see参考的描述5.@exception异常抛出的描述美观考虑,不同类的标签可以换一行显示,比如@param和@return直接空一行。

二、Java类标准注释类的注释和方法注释的格式基本相同。区别的地方:1.放置的位置不同。类的注释放在类定义的上面,方法的注释放在方法定义的上面。2.类的注释比较会使用@version@author@since这样的标签。看模板

/**willbuffertheinputfromthespecifiedfile.Withoutbuffering,each*invocationofread()orreadLine()couldcausebytestobereadfromthe*file,convertedintocharacters,andthenreturned,whichcanbevery*inefficient.***TestDescription**

ProgramsthatuseDataInputStreamsfortextualinputcanbelocalizedby*replacingeachDataInputStreamwithanappropriateBufferedReader.**@seeFileReader*@seeInputStreamReader**@version0.1,11/20/13*@authoroscar999*@sinceJDK1.5*/doc中显示的效果是:同样,描述的第一句出现在“类概要”中。

类的详细信息显示如下:

值得注意的是description中

的使用。如果没有加

,在javacode中不管是否有换行,产生的doc中都不换行。加上

的话,doc中出现换行。

THE END
1.法律特征及其在社会中的作用法律的特征和作用分别是什么法律,作为社会治理的重要工具,具有独特的特征和广泛的作用,它不仅规范了社会成员的行为,维护了社会秩序,还保障了公民的合法权益,促进了社会的公平正义,本文将详细探讨法律的特征及其在社会中的作用。 法律的特有特征 1、规范性:法律具有普遍的约束力,对所有社会成员都具有指导意义,它通过明确的行为规范,规定了人们应当http://www.skypure.com.cn/post/5706.html
2.法则纷呈百条守律指南在一个国家的社会结构中,法律扮演着不可或缺的角色,它是维护社会秩序和公平正义的重要手段。100条法律法规,不仅仅是数量上的积累,更是一种对社会行为规范深刻理解和尊重的体现。 二、遵循与执行 作为公民,我们必须遵守这些法律法规,这些法律不仅为个人行为设定了界限,也为企业经营活动提供了依据。在实际操作中,了解https://www.jb9ykztqn.cn/jun-lei-cai-pu/199847.html
3.法则精髓法律知识的全方位解析了解了法律是什么之后,我们要进一步探讨其构成。这包括立法(Legislation)、司法(Judiciary)和执法人(Executive)三个主要分支,以及它们之间相互作用的层级结构。立法分支负责制定法律;司 法分支负责解释和执行法律;执法人负责执行并保障实施各项政策,确保整个体系的顺畅运转。 https://www.erdqcvtxm.cn/jun-lei-wen-xian/406326.html
4.法律的意义和价值行业资讯法律的意义和价值主要体现在以下几个方面: 一、法律的意义 法律的秩序意义:法律在构建社会秩序中起着主要作用,保证着人类的生存和社会的发展。通过制定行为规范,法律为社会的稳定有序提供了坚实的基石。 法律的自由意义:法律明确行为模式,让行为人选择有利于自己的模式,同时,法律将个人自由赋予法律的形式,使自由得到国http://www.anlihk.com/detail/id/103/
5.法律规范作用的例子(5页)法律规范作用的例子【篇一:法律规范作用的例子】具体说来,法的规范作用包括:指引作用、评价作用、预测作用、强制作用、教育作用等。法的社会作用包括:经济作用、政治作用、文化作用、社会公共事务作用等。具体 【篇二:法律规范作用的例子】 2017 联系方式:【篇三:法律规范作用的例子】考点名称:法律的本质、https://max.book118.com/html/2020/0830/7105056031002164.shtm
6.熟悉Python从由浅入深(Python基础篇)python由浅入深标识符,相当于调用内存地址的一个映像外号。 标识符要遵守五个命名规范: 精简、见名知意 由数字、字母、下划线组成,且开头不为数字 区分大小写 不能和关键字同名 常见的命名方法 (1)小驼峰命名法 (2)大驼峰命名法 (3)下划线来_来链接所有词语 注意:这里的常见命名方法属于编程【道德】,就是在标识符命名规范https://blog.csdn.net/ziwu1226/article/details/131514681
7.工程管理与环境保护12篇(全文)工程环境监理和工程监理既有着密切联系,也有着一定的区别,在法律地位、标准与规范、监理的目的与主要任务、监理对象、内容、范围和依据、监理作用等方面都有着区别,要实现工程环境监理的有效落实,就要从理论、法律法规等方面进一步探索,进一步充实完善。 参考文献: https://www.99xueshu.com/w/ikeyvfiflk8p.html
8.国家司法考试《国际私法》讲义(第三章)(三)重叠适用准据法的冲突规范 指含有两个或两个以上的连结点,并且对“范围”所指的法律关系或法律问题必须同时适用该两个或两个以上连结点所指向的国家的法律的冲突规范。 例子:离婚之请求,非依夫妇本国法及法院地法均有离婚之原因者,不得为之。 http://data.110.com/a858968.html
9.2018年第3期总第5期法系,主要是按照法律的特点和历史传统对各国法律进行分类的一种方法,将世界各国的法律构造成几个具有代表性的法系是比较法的基础。法系的作用有二:其一,将世界上几百个国家的法律按照一个统一的标准划分为几大法系,可以充分体现同一法系的各国法律的统一性与其显著特征,便于对世界上各国、各区域的法律特征有一个宏观http://fxy.hunnu.edu.cn/info/1130/2924.htm
10.私法自治中的国家强制——从功能法的角度看民事规范的类型与立法释法作者相信,正因为当初民法典的制定,掌握了公私法领域在规范和价值上相互流通的动线,使它在引进台湾社会以后,很快的就能发挥引导和止争的作用,对经济和社会的现代化,有其不可磨灭的贡献。但民法学的研究,基本上还是沿袭「前公法时代」的典范,潜意识中把民法当成一个自给自足的独立王国,而不太注意私法自治与国家强制https://china.findlaw.cn/zhishi/a359146.html
11.2021最新阿里代码规范(前端篇)8) 为组件样式设置作用域 9) 如果特性元素较多,应该主动换行。 2.1.2. 模板中使用简单的表达式 2.1.3 指令都使用缩写形式 2.1.4 标签顺序保持一致 2.1.5 必须为 v-for 设置键值 key 2.1.6 v-show 与 v-if 选择 2.1.7 script 标签内部结构顺序 2.1.8 Vue Router 规范 1) 页面跳转数据传递使用路由参数https://developer.aliyun.com/article/850913