在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型 - 编程入门网
名称,在这里例子中输入TODO, 点击Finish, 图2 中的注释就生成了。
图1 创建注释向导 图2 注释向导生成的代码 2.2.1注释的类型 从上面的例子中,我们可以看出,按照使用者所需要传入的参数数目, 注释 (Annotation)的类型可以分为三种。 第一种是标记注释类型: 标记注释(Marker)是最简单的注释, 不需要定义任何域。下面要介绍的Override和 Deprecated都是标记类型的。当然,如果一个注释类型提供了所有域的缺省值,那么这个 注释类型也可以认为是一个注释类型。使用标记类型的语法很简单。 清单7 标记注释的用法
第二种是单值注释类型:单值注释类型只有一个域。语法也很简单: 清单8 单值注释的用法
在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型(3)时间:2011-04-02 IBM 邹青 吴嫣 吴疆第三种是全值注释类型。全注释类型其实并不算是一个真正的类型,只是使用注释类 型完整的语法: 清单9 全值注释的用法
2.2.2 J2SE的内建注释(build-in annotation) 在程序中不仅可以使用自己定义的注释,还可以使用J2SE5.0中内建的注释类型。下面 我们就详细来介绍J2SE5.0提供的注释类型。J2SE 5.0中预定义了三种注释注释类型: Override :java.lang.Override 表示当前的方法重写了父类的某个方法,如果父类 的对应的方法并不存在,将会发生编译错误。 Deprecated:java.lang.Deprecated 表示 并不鼓励使用当前的方法或者域变量。 SuppressWarnings: java.lang.SuppressWarnings关闭编译器告警,这样,在编译1.5 之前的代码的时候,不会出现大量不关心的无关的告警。 下面举一个使用Override的例子。Override这个注释类型在使用模板方法(Template Method,图2)非常有用。熟悉设计模式的读者们一定知道,模板方法中通常定义了抽象 类,并且这个抽象类中定义了主要的控制流。子类就是通过重写父类中控制流中所调用的 方法来实现自己的逻辑。有的时候,父类会将这些方法定义为抽象方法,但是有的时候也 会提供缺省实现。在后者的情况下,子类可以不实现这个方法。 这样就带来一个问题,如果你希望在子类中重写这个方法,但是无意中写错了方法的 名字,这个错误是很难被发现的。因为你希望重写的这个方法,会被编译器当作一个新的 方法而不是重写父类的方法。而现在使用@Override,这个担心就是不必要的。如果你拼 错了你希望重写的方法,编译器会报错,告诉你父类没有相应的方法。 图2 模板方法的类图 清单10给出了模板方法的一个例子。这个例子中有定义了两个类,SubClass和 BaseClass。其中SubClass继承了BaseClass,并且希望重写BaseClass的方法doPartII( )。然而SubClass中错误的拼写了这个方法的名称。图3显示了SubClass中的编译错误。 熟悉eclipse的读者会看到在编辑器里出现了Error Marker,说明这一行有编译错误。将 鼠标指向这行,显示了错误信息。 清单10 模板方法
图3 Override应用的例子 在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型(4)时间 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |