|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
本系列的第一篇文章先容了甚么是元数据,元数据的主要性,和怎样利用J2SE5.0(也叫做Tiger)的基础内置正文。假如习气了这些观点,您大概已在想,Java5供应的三种尺度正文也并非出格强健,能利用的只要Deprecated、SuppressWarnings和Override罢了。所幸的是,Tiger还同意界说本人的正文范例。在本文中,我将经由过程一些示例引诱您把握这个绝对复杂的历程。您还将懂得怎样对本人的正文举行注解,和如许做的一些优点。我要感激OReillyMedia,Inc.,他们十分大方地同意我在本文中利用我关于Tiger的书本的“正文”一章中的代码示例。
界说本人的正文范例
经由过程增加了一个小小的语法(Tiger增加了大批的语法布局),Java言语撑持一种新的范例——正文范例(annotationtype)。正文范例看起来很像一般的类,可是有一些独有的性子。最分明的一点是,能够在类中以标记(@)的情势正文其他Java代码。我将一步一步地先容这个历程。
@interface声明
界说新的正文范例与创立接口有良多相似的地方,只不外interface关头字之前要有一个@标记。清单1中给出的是一个最复杂的正文范例的示例:
清单1.十分复杂的正文范例
package com.oreilly.tiger.ch06;
/**
* Marker annotation to indicate that a method or class
* is still in progress.
*/
public @interface InProgress { }
清单1的寄义十分分明。假如编译这个正文范例,并确信其位于类路径中,那末您就能够在本人的源代码办法中利用它,以指出某个办法或类仍在处置中,如清单2所示:
清单2.利用定制的正文范例
@com.oreilly.tiger.ch06.InProgress
public void calculateInterest(float amount, float rate) {
// Need to finish this method later
}
清单1所示正文范例的利用办法和内置正文范例的利用办法完整不异,只不外要同时利用称号和地点的包来唆使定制正文。固然,一样平常的Java划定规矩仍旧合用,您能够导进该正文范例,间接利用@InProgress援用它。
增加成员
下面所示的基础用法还远远不敷强健。您必定还记得“第1部分”中已经提到的,正文范例能够有成员变量。这一点十分有效,特别是筹办将正文作为加倍庞大的元数据,而不单单将它作为原始文档利用的时分。代码剖析工具喜好加工大批的信息,定制正文能够供应这类信息。
正文范例中的数据成员被设置成利用无限的信息举行事情。界说数据成员后不必要分离界说会见和修正的办法。相反,只必要界说一个办法,以成员的称号定名它。数据范例应当是该办法前往值的范例。清单3是一个详细的示例,它廓清了一些对照含混的请求:
清单3.向正文范例增加成员
package com.oreilly.tiger.ch06;
/**
* Annotation type to indicate a task still needs to be
* completed.
*/
public @interface TODO {
String value();
}
<p>
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。 |
|