Java 7需要什么样的新特性? jdk1.5称为jdk 5.0(代号Tiger)马上就要发布Release版了, 而jdk 6.0也开始投入研发。目前,在Java社区,已经开始讨论 jdk 7.0(代号Dolphin)需要加入什么新特性了。
这些讨论中,有关于语言特性上的改进,也有关于一些琐碎的小功能的增加,其中有些特性看起来倒是很吸引人的。
需不需要为java增加c++一样的预定义宏和操作符重载?
c++中有预定义宏的功能,这在一定程度上方便了开发者,但同时又对java语言本身带来一定的风险. 有人指出,提供简单的预定义宏,还有有必要的,例如:
#ifdef something
do something
#else
do something else
#endif
这样对编译条件的控制,可以大大方便开发者。
而操作符重载,引起最大的反映就是,它可能对java语言本身具有的安全性带来挑战。 其实这两种特性在jdk 6.0时就有人进出, 但引起大多数人的反对。不过还是有人提议,应该在Number型的类提供操作符重载,就像这样:
Long aLongNumber=new Long(10);
BigInteger aBigInteger= new BigInteger("500");
BigInteger result= aLongNumber+aBigInteger;
使其可以直接使用四则运算符,而不用调用繁琐的运算方式。(对于类似Number型的运算符重载,好像C#已经有支持这样的功能了)
具有优先级的监听器
这个特性比较有趣,提出者认为,现在jdk所有的监听器特性,其listener的调用顺序无法控制,一般就是register的顺序,使用者无法对它们排序,也无法控制它们谁先或谁后执行。你认为应该如何才好呢?
增加JARPATH
我们知道java运行时,是通过CLASSPATH来找到相关的class的。但是,很多初学者就栽在这个上面,总是被CLASSPATH弄个半死。例如,我们的程序要引用一个jar或class,必须通过CLASSPATH一个个的加,就像这样:
CLASSPATH=.;%CLASSPATH%;a.jar;b.jar;c.jar,x.jar.....
这样了会觉得不甚其烦。如果jdk能支持一种机制,将所有jar都放在同一个目录,只要在CLASSPATH中加上这个目录的路径就行了。提议者将之称为JARPATH.