J2SE1.5便于开发的新语言特性:Joshua Bloch的访谈录
原文http://java.sun.com/features/2003/05/bloch_qa.html
May 8, 2003
随着预期Java 2 Platform, Standard Edition 1.5 (J2SE 1.5) beta版本在2003年晚一些时候的发布(众所周知的Tiger项目),开发人员非常关注即将到来的新的变化。没有谁能比Joshua Bloch更适合清晰地解释J2SE 1.5了。他是Sun公司的资深工程师,是Java平台核心工作组的系统架构师。他成功地设计并实现了获奖的Java Collections Framework,java.math包,而且对Java平台的其他部分的设计和实现也做出了卓越的贡献。他发表过无数的论文,并且出版过一本书《Effective Java Programming Language Guide》,这本书获得了软件开发杂志的Jolt奖。他获得了Carnegie-Mellon 大学的计算机博士学位。今天我们跟他交流一下,来看看Java程序设计语言的未来。
![](/images/load.gif)
![](/images/load.gif)
![](/images/load.gif)
另外,整体的功能大于组成整体的各个部分之和,所有的新特性在设计的时候都是充分考虑其它部分的。它们一起协调作用,显著地提升了语言的表现力和安全性。
![](/images/load.gif)
![](/images/load.gif)
List words = new ArrayList();
你必须这样写:
List<String> words = new ArrayList<String>();
这样做的好处就是如果你想插入一个其他什么对象而不是String的话,在编译的时候你就可以发现并修正你的错误。如果不使用泛型技术的话,只有当你们的客户向你们抱怨他们所依赖的软件Down掉了,原因是一个什么类型转化异常(ClassCastException)的时候,你才可能发现你程序中的这个bug。
这样做的另外一个好处就是当你从集合(Collection)中取出一个元素的时候不用作强制类型转转。本来,你会这样写:
String title = ((String) words.get(i)).toUppercase();
现在很简单:
String title = words.get(i).toUppercase();
![](/images/load.gif)
![](/images/load.gif)
开发者参与的最好的途径就是阅读最新的草案,并把意见和建议发给相关的专家组。最新的泛型草案可以在下面的地址中找到:
http://jcp.org/aboutJava/communityprocess/review/jsr014/.
你也可以下载一个预览版的编译器,尝试理解泛型技术: http://developer.java.sun.com/developer/earlyAccess/adding_generics/.
其他方面建议的早期草案在这里: http://www.jcp.org/en/jsr/detail?id=201。 请注意3.1节,大约在这一页的底部。
当前还没有关于JSR-175 (metadata)元数据的草案,不过很快就会有了。开发的进一步信息请在这里找: http://www.jcp.org/en/jsr/detail?id=175