建站资讯

Java实例教程:怎样应用Annotation

作者:admin 发布时间:2021-04-03
Webjx网页页面课堂教学提醒:最先要我们从 Java 界定的 Annotation 刚开始。@Override 将会就是我们最经常采用的 Annotation 之一了,Eclipse 中当子类中的某一方式覆写的父类中的方式时,会亮黄灯提醒。若用 @Override 装饰该方式,黄灯灭掉。
配备文档的益处取决于进一步减少藕合,使运用更加容易于拓展,即便对配备文档开展了改动都不必须对工程项目开展改动和再次编译程序。缺陷也是不言而喻,配备文档载入调解析必须花销一定的時间,配备文档过量时无法管理方法,IDE 没法对配备的恰当性开展校检,给检测提升了难度系数。根据之上缘故,Java 从1.5刚开始出示了 Annotation (注解,标明),它用于装饰运用程序的原素(类,方式,特性,主要参数,当地自变量,包、数据库),编译程序器将其与数据库一同储存在 class 文档中,运作期内根据 Java 的反射面来解决对其装饰原素的浏览。Annotation 只是用于装饰原素,而不可以危害编码的实行。仅有根据其配套设施的架构或专用工具才可以对其信息内容开展浏览和解决。这一点与 xml 同样,沒有 struts api 的 struts.xml 文档对程序不容易起來一切功效。

Q:怎样应用 Annotation ?
A:最先要我们从 Java 界定的 Annotation 刚开始。@Override 将会就是我们最经常采用的 Annotation 之一了,Eclipse 中当子类中的某一方式覆写的父类中的方式时,会亮黄灯提醒。若用 @Override 装饰该方式,黄灯灭掉。再要我们看来一个案子,当我们们应用 new java.util.Date(2010, 2, 25); 来原始化时间类时,Eclipse 依然会亮黄灯提醒,它是由于该方式被 @Deprecated 装饰了,表明不强烈推荐应用。从这2个事例大家可以掌握到,Annotation 是在编译程序期校检的。这一点较大的益处是在编译程序期内便可对与错误开展解决。若应用 xml 得话,仅有在运作期才可以获得不正确信息内容。

Q:Java 规范的 Annotation 有什么?
A:@Deprecated @Deprecated标明的目标class, method等被标明为不强烈推荐应用。关键用以javac等编译程序专用工具。
@Override 标明目标method轻载了父类的方式。javac等编译程序专用工具编译程序时候依据此Annotation分辨轻载方式是不是恰当。
@SuppressWarnings 告知javac等编译程序器忽视特指定的特殊的警示信息内容。
@Target 被界定的annotation能够额外在哪些目标上。
@Retention annotation的功效期内。
这儿大家要关键详细介绍2个 Annotation ,由于这2个 Annotation 有一点独特,由于他们其实不是用于装饰编码,只是用于装饰 Annotation 的。
@Target 用于标明界定的 Annotation 能够额外在哪些目标上。可选择主要参数包含CONSTRUCTOR(结构器)、FIELD(特性及enum案例)LOCAL_VARIABLE(部分自变量)、METHOD(方式)、PACKAGE(包)、PARAMETER(主要参数)及其TYPE(类、插口、注释种类、enum)。下例界定的 Annotation 被 @Target 装饰,表明该 Annotation 能够用于装饰特性和主要参数。

 @Target( { FIELD, PARAMETER})
 public @interface Resource {
 public String id() default 

应用方式:

 public class Mxjava {
 @Resource(id= pre>

@Retention 用标明在甚么级別储存该 Annotation 。可选择主要参数包含SOURCE(编译程序期会被忽视不做储存)、CLASS(编译程序后的 class 文档中能用,但虚似机运作时忽视)、RUNTIME(运作期保存,若要应用反射面体制载入 Annotation 信息内容得话,应用此项。)

 @Target( { FIELD, PARAMETER})
 @Retention(RUNTIME)
 public @interface Resource {
 public String id() default 

Q:怎样界定 Annotation ?
A:先要我们看来一个非常简单的 Annotation 。

 @Target( { FIELD })
 @Retention(RUNTIME)
 public @interface Resource {
 public String id() default 

@Target 是 Java 规范的 Annotation,本例中特定界定的 Annotation 能够额外在特性(Field)上。@Retention 也是 Java 规范的 Annotation,特定功效期内是运作期。@interface 是用于装饰 Annotation 的,一定要注意,它并不是 interface。这一重要字申明暗含了一个信息内容:它是承继了 java.lang.annotation.Annotation 插口,而并不是申明了一个 interface。Annotation 组员的界定看起来很象方式,default 表明默认设置数值空标识符串。应用方式以下:

 public class mxjava {
 @Resource(id= pre>

若沒有配套设施的架构和专用工具,@Resource 不是起一切功效的。就象前边提到的那般,它不容易对编码的实行有一切危害。

Q:何时必须自定 Annotation ?
A:一般来讲,若不做架构和专用工具的开发设计,一般状况下不是必须自定 Annotation 的。


收缩