星期三 四月 05, 2006
5.0之new feature初体验(2005年10月)
说不是泛型,其实也是泛型——是那个所谓的auto-boxing/auto-unboxing(自动打包/自动解包),太tmd好用了。以前像随便输出个调试信息,譬如封装一下System.out.println(...)之类的都要区分基本类型还是对象实例,简直太愚昧了!
下面是以前写的傻乎乎的代码:
public Object getNextItem()
{
// current,first,last皆为Integer而非int
if (current.intValue() + 1 <= last.intValue())
return Integer.valueOf(current.intValue() + 1);
else
{// Reach tail
if (rollback)
return first;
else
return current;
}
}
{
// current,first,last皆为Integer而非int
if (current.intValue() + 1 <= last.intValue())
return Integer.valueOf(current.intValue() + 1);
else
{// Reach tail
if (rollback)
return first;
else
return current;
}
}
再下面是用了auto-boxing/auto-unboxing特性的代码
public Object getNextItem()
{
if (current + 1 <= last)
return current + 1;
else
{// Reach tail
if (rollback)
return first;
else
return current;
}
}
{
if (current + 1 <= last)
return current + 1;
else
{// Reach tail
if (rollback)
return first;
else
return current;
}
}
看到了吧,只要是目标对象符合,操作上跟基本类型完全一样。这个功能在某种程度上部分抵销了Java没有运算符重载带来的不便。不过编译时要记得打开5.0的VM选项哦:
javac -target 5.0 XXX.java
结论:Generic果然是王道!
Posted by Samuel Lee in J2SE研究
at 20060405
Comments:
Search This Site
Recent Entries
- 【转贴】类 DateFormatSymbols
- 暂时先贴到这里了
- SmartCalendar 0.1 beta released!
- SmartCalendar新增JNLP发布!
- MSNHC居然被人继续开发下去了
- 【转贴】-jar参数运行应用时classpath的设置方法
- 5.0之new feature初体验(2005年10月)
- 【翻译】log4j的PatternLayout参数含义(2005年10月)
- MSNHistoryCombiner的一点心得
- 从Jar包获取资源的方法(2005年6月)
- 【翻译】仿射变换(2005年11月)
- MSN历史记录合并工具MSNHistoryCombiner新鲜出炉(2005年6月)
- “给你第二次机会”——小议PushbackInputStream(2005年3月)
- 存取程序状态的几种方法——Java I/O应用杂谈(2005年3月)
- Java调试的变迁:从System.out.println到log4j(2004年12月)
- 关于集合框架的思考(2004年12月)
- 我的JavaMail客户端 - JExp(2004年11月)
- JavaMail API FAQ 译文
- JavaMail API FAQ
- 利用Observer模式解决组件间通信问题(2004年9月)