技术开发 频道

年度回顾:JavaSE 7值得期待之处

  通过注释实现更好的决策

  J2SE把我们带入了Java注释的世界,在Java SE 6中,我们只可以对类、方法、字段和变量声明进行注释。JSR 308:Java类中的标注(Annotations on Java Types)允许注释出现在任何可用的类型上,使得更具表现力和准确性的系统成为可能。

  在JSR 305:供检查软件缺陷用的注解(Annotations for Software Defect Detection)中尽管定义了一些注释,但是JSR本身并不定义任何更多的注释。JSR 305的目的是让开发者更准确的定义方法调用情况,诸如是否允许为空,集合是否可以为空集合等等。

  Listing 4演示了如何使用一个新注释。

  Listing 4

// A more precise class definition:

  
class UnmodifiableList implements @Readonly List<@Readonly T> { ... }

  
// A more precise variable declaration:

  List str
= new @NonEmpty @Readonly ArrayList(stringSet);

  注释处理器可以被插入到编译器中,以在编译的时候验证这些注释。This allows a great deal more specificity and precision, but it comes with a heavy cost of verbosity and will certainly fill some Java users with dread.

  简化Swing

  与Swing相关的JSR正在上演三重唱。JSR 296:Swing应用程序框架,提供了个框架和多数Swing应用所需的功能,尤其是它提供了:

  ·定义良好的应用程序生命周期

  ·引入了更丰富的资源素材(诸如标签、字体和颜色等)

  ·行为管理(包括后退任务的支持)

  ·诸如Windows位置之类的持久性会话信息

  进入2008年以后,JSR 296一直处于巨大的生存危机中。尽管目前有复苏的迹象,但是许多人依然在怀疑它是否能在Java SE 7推出的时候证明自己。

  JSR 295:Beans绑定(Beans Binding)和JSR 303:Bean验证(Bean Validation),这两个JSR的目的是解决Swing应用程序中普遍存在的问题,不过它们也可以用于非Swing应用。JSR 303是一个可以为字段和类创建验证器的框架。这个JSR定义了一系列元注释,同时还定义了一些常见的约束性注释。

0
相关文章