Dev@Free

zJun's Tech Weblog

Java5 feature

摘自: JDK1.5新特性介绍


1.泛型(Generic)


Collection < String >  c  =   new  ArrayList();
c.add(
new  Date());

编译器会给出一个错误:
add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)

2.For-Each循环
Before:
void  processAll(Collection c) {
 
for (Iterator i = c.iterator(); i.hasNext();)
{
   MyClass myObject 
=
 (MyClass)i.next();
   myObject.process();
 }

}

Now:
void  processAll(Collection < MyClass >  c) {
 
for
 (MyClass myObject :c)
   myObject.process();
}


3.自动装包/拆包(Autoboxing/unboxing)
int  a  =   3 ;
Collection c 
=   new
 ArrayList();
c.add(a);
// 自动转换成Integer.

  
Integer b 
=   new  Integer( 2
);
c.add(b 
+   2 ); //
这里Integer先自动转换为int进行加法 运算,然后int再次转换为Integer.

4.枚举(Enums)
// 定义一个枚举类型。   
public   enum  Color {
 Red,
 White,
 Blue
}

// 然后可以这样来使用
Color myColor  =  Color.Red.
// 枚举类型还提供了两个有用的静态方法values()和valueOf(). 我们可以很方便地使用它们,例如

for  (Color c : Color.values())
  System.out.println(c);

5.可变参数(Varargs)
Before:
util.write(obj1);
util.write(obj1,obj2);
util.write(obj1,obj2,obj3);
Now:
public   void  write(Object objs {
 
for
 (Object obj: objs)
  System.out.println(obj);
}


6.静态导入(Static Imports)
import   static  java.lang.Math. * ;

=  sin(PI  *   2 );  //
无需再写r = Math.sin(Math.PI);

注意:
过度使用这个特性也会一定程度上降低代码地可读性。

posted on 2007-08-17 23:27 zJun's帛罗阁 阅读(850) 评论(0)  编辑  收藏 所属分类: Java基础


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

常用链接

留言簿(15)

随笔分类

随笔档案

相册

收藏夹

博客

文档

站点

论坛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜