JavaScud | Forum | JIRA | Blog |
  Dashboard > SpringSide > Home > JDK5
  SpringSide Log In View a printable version of the current page.  
  JDK5
Added by calvin, last edited by Anonymous on Oct 15, 2006  (view change)
Labels: 
(None)

SpringSide中使用的JDK5.0特性

1.AutoBoxing

本来int的非Object性就很无聊,在JDK5.0终于提供了autoboxing功能。这个语法简化糖,被用在了每一个地方。

2. 范型

用于HibernateEntityDao, 泛型配合反射API获得要管理的Entity的Class,T.class。

子类只需以下定义:

BookManager extends BaseHibernateDao<Book>

一来无须再实现getEntityClass()函数,二来所有返回T的函数如T find(int id);在子类使用时也无须再作强行类型转换。

3.可变参数

用于HibernateGenericDao中,简化函数接口。

比如 public List find(String hql, Object... values),就支持了如下四种调用,避免了以前的大量重复定义。

dao.find(hql);
dao.find(hql,arg0);
dao.find(hql,arg0,arg1);
dao.find(hql,new Object[arg0,arg1])

4. 三种内置Annotation

  JDK5.0 有SuppressWarnings,Deprecated和Override 三种内置的annotation:

  @Override

   此标签一方面提醒用户这是个重载函数,另一方面保证了父类函数的参数或者名字改变时,子类如果没有跟着变化,就会编译不过。

   虽然有点占地方,但用处的确很大,不会哪天子类被人卖了都不知道。

  所以我设置了让IDEA6检查所有重载函数必须加上@Override标识。

  @SuppressWarnings("unchecked")

    此标签可以让编译器忽略某种warning信息,比如减少JDK5.0的集合操作引入范型后无处不在的warning。

    因为有些非JDK5.0的开源库如hibernate, 函数返回的一定是List,而不会是List<User>,这时候IDE就会爆出很多warning。用SuppressWarning("unchecked")可以取消掉它。

  @Deprecated
   此标签以前写在JavaDoc里,现在提为annotation,注释已废弃的函数。用户使用该函数的话,编译时会得到"你用了废柴"的提示。

Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators