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循環(huán)
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);
//
自動轉(zhuǎn)換成Integer.
Integer?b?
=
?
new
?Integer(
2
);
c.add(b?
+
?
2
);
//
這里Integer先自動轉(zhuǎn)換為int進(jìn)行加法?運(yùn)算,然后int再次轉(zhuǎn)換為Integer.
4.枚舉(Enums)
//
定義一個枚舉類型。 ?
public
?
enum
?Color
{
Red,
White,
Blue
}
//
然后可以這樣來使用
Color?myColor?
=
?Color.Red.
//
枚舉類型還提供了兩個有用的靜態(tài)方法values()和valueOf().?我們可以很方便地使用它們,例如
for
?(Color?c?:?Color.values())
System.out.println(c);
5.可變參數(shù)(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.靜態(tài)導(dǎo)入(Static Imports)
import
?
static
?java.lang.Math.
*
;

r?
=
?sin(PI?
*
?
2
);?
//
無需再寫r?=?Math.sin(Math.PI);
注意: 過度使用這個特性也會一定程度上降低代碼地可讀性。
1.泛型(Generic)


編譯器會給出一個錯誤: add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)
2.For-Each循環(huán)
Before:








Now:






3.自動裝包/拆包(Autoboxing/unboxing)







4.枚舉(Enums)














5.可變參數(shù)(Varargs)
Before:











6.靜態(tài)導(dǎo)入(Static Imports)




注意: 過度使用這個特性也會一定程度上降低代碼地可讀性。
posted on 2007-08-17 23:27 zJun's帛羅閣 閱讀(883) 評論(0) 編輯 收藏 所屬分類: Java基礎(chǔ)