Java 注解详解 (annotation)

  • 时间:
  • 浏览:0
  • 来源:大发5分PK10APP下载_大发5分PK10APP官网

Java注解还也能 用在构建期。当构建大伙儿 的工程时,构建程序池池会编译源码、生成xml文件,打包编译后的代码和文件到jar包。构建过程一般由构建工具自动完成,常用的构建工具有ant、maven。构建工具在构建过后自动扫描大伙儿 的代码,当遇到构建期注解时,会根据注解的内容生成源码怎么让其它文件。

里边对注解做了那我删剪介绍,具体该怎么使用大伙儿 的自定义注解呢?其我我其实现实应用中,大伙儿 的自定义注解一般过后起到运行时指示的作用,也只是运行时注解。对于运行时注解,大伙儿 还也能 通过反射机制获得注解信息。

ElementType的值一共有以下几种:

注解还也能 用于描述那我类、接口、妙招、妙招参数、字段、局部变量等。在下边你这种例子中,注解分别用在了类、字段、妙招、参数和局部变量中:

怎么让MySubClass 继承了MyClass,而MyClass的注解@MyAnnotation是可继承的,最终MySubClass也会有@MyAnnotation注解。

在大伙儿 实际应用中,在使用@Deprecated注解时,最好一同使用Java Doc的@deprecated符号,用来描述当前类、妙招怎么让字段是不赞成使用的,怎么让告诉开发者应该用哪个对象替换,如下面例子:

下面这段代码演示了怎么使用注解:

java注解中一般包含许多元素,哪几种元素类似于于于属性怎么让参数,还也能 用来设置值,比如大伙儿 有那我包含那我元素的@Entity注解:

value元素设置默认值过后,再使用时大伙儿 就还也能 省略掉value元素,此时的value值采用的是默认值:

@Inherited注解表示当前注解会被注解类的子类继承。比如有那我自定义注解:

@Override注解是那我编译时注解,它主要用在那我子类的妙招中,当被注解的子类的妙招在父类中找也能与之匹配的妙招时,编译器会报错。 当大伙儿 在子类中覆盖父类的妙招时,就要用到@Override注解,那我,怎么让父类中的妙招名称或参数趋于稳定改变时,怎么让子类也能做相应的调整编译器便会报错,这只是@Override注解所起到的作用。当然@Override注解过后强制使用的,但我还是推荐大伙儿 尽量使用它。下面是那我@Override注解的例子:

里边你这种注解会告诉编译器和JVM,你这种注解也能 在运行时有效,JVM会在运行时通过反射机制获取注解信息,关于怎么在运行时利用反射获取注解信息,最里边会进行介绍。@Retention注解的值一共有三种:

里边代码便创建了那我@MyApplication注解,它一共有还还有一个元素。@interface关键字就代表这是那我注解类型,不想 不想 不想 不想 使用@interface关键字就还也能 创建注解了。

大伙儿 还也能 通过default关键字为某个元素设置默认值,当那我元素被设置默认值过后,你这种元素便成了注解的可选元素。

下面大伙儿 为@MyAnnotation注解的value元素设置那我默认值:

里边注解包含那我元素,tableNameprimaryKey,它们每每个人都被赋予了当事人的元素值。

元注解只是注解的注解。大伙儿 还也能 通过元注解来控制描述大伙儿 自定义注解的行为。

你这种例子中,@Target的值是ElementType.METHOD,通过它的名称还也能 看出,你这种自定义注解也能注解类的妙招。

从里边内置注解还也能 看到,注解很方便也很有用,不想 不想 不想 不想 过后大伙儿 只是需要 创建大伙儿 当事人的注解。创建注解我我其实和创建类或接口一样简单:

怎么让有那我类使用了里边你这种注解:

注意@MyAnnotation注解里边的@Retention的值:

其中大偏离 通过名字就能看出它的作用,不过有那我也能 单独介绍一下:

@SuppressWarnings注解的作用是使编译器忽略掉编译器警告。比如,怎么让大伙儿 的那我妙招调用了那我@Deprecated妙招,怎么让做了那我不安全的类型转换,此时编译器会生成那我警告。怎么让大伙儿 不看到到哪几种警告,大伙儿 就还也能 使用@SuppressWarnings注解忽略掉哪几种警告:

比如大伙儿 有那我自定义注解:

并用你这种注解注解了那我类:

也能你这种类的子类也会继承你这种注解:

@Retention用来定义当前注解的作用范围,怎么让大伙儿 要把大伙儿 的自定义注解限制为运行时有效,也能大伙儿 还也能 使用@Retention注解进行指定:

也能 注意的是,注解中的每个元素定义类似于于于接口中的妙招定义。每个元素定义包含那我数据类型名称,注解元素的数据类型还也能 是java基本数据类型、String、数组,但也能是僵化 对象类型。

@Documented的作用是告诉JavaDoc工具,当前注解三种也要显示在Java Doc中。比如大伙儿 用@Document注解了大伙儿 的自定义注解:

注解是java5的新型态。注解还也能 看做三种注释怎么让元数据(MetaData),还也能 把它插入到大伙儿 的java代码中,用来描述大伙儿 的java类,从而影响java类的行为。

Java三种提供了那我内置注解,大伙儿 分别是:

@Target注解用来约束自定义注解还也能 注解Java的哪几种元素。比如下面你这种例子:

怎么让那我类使用了你这种注解:

也能当生成MySuperClass的JavaDoc的过后,@MyAnnotation也会出現在JavaDoc当中。

那我java注解由那我@符里边跟那我字符串构成,类似于于于那我:

使用Java注解一般来说主要有三种目的

@Deprecated还也能 用来描述那我类、妙招怎么让字段,表示java不赞成使用哪几种被描述的对象,怎么让大伙儿 使用了哪几种类、妙招怎么让字段,编译器会给大伙儿 警告。@Deprecated注解使用妙招如下:

猜你喜欢

python数据抓取分析(python + mongodb)

Python数据抓取分析分享点干货!!!大伙儿儿在产品分类的一齐还要选择大伙儿儿所访问的地址是产品还是又有另一另有一个分类的产品地址(什么都有有还要判断大伙儿儿访问的地址算是蕴

2020-01-20

我问女生想要什么生日礼物,她说我还记得她生日,她以为我忘了,然后她说随便吧 她什么意思?

 我来答我我随便说说知道她有哪些意思不如知道你个人有哪些想法,你时候对她有感觉,那就平时对她多关心些,多聊聊,没事多找她转转,另假使 就算不说出我喜欢你这种 语句,两人之

2020-01-19

万网云解析设置二级域名解析到同IP不同端口

怎样使用阿里云搭建wordpress网站(图文教程+小白专用+Linux版)?现在也能 换成解析,记录类型选择隐性URL,主机记录写想用的名字,例如于asp,解析地址写你想进

2020-01-19

人一生总会先暗恋几个人,再错过几个人,到最后才遇到对的人

本回答被提问者采纳你对什儿 回答的评价是?为你推荐:使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。经历充足!是的追问展开详细不怎么推荐展开详

2020-01-19

值得职场人反思的工作心态:工作不顺利到底是谁的问题

这人人 要自学认识各人 ,知道各人 的能力,知道各人 的瓶颈,人无完人都需要慢慢的完善各人 ,要想处置工作中哪此麻烦,就要揪出间题的源头,知道各人 的存在

2020-01-19