java jdk5.0中出现的新特性——泛型

泛型(Generics)
增强的“for”循环(Enhanced For loop)
自动置入/自动取出(Autoboxing/Unboxing)
类型安全的枚举(Type safe enums)
静态导入(Static import)
可变参数 (Var args)


[size=large]泛型(Generics) [/size]

泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastException的可能。
在JDK1.5中,你可以声明一个集合将接收/返回的对象的类型


如果使用泛型类别,但声明时不指定类型呢?
那么预设会使用Object,不过需要自己进行类型转换了,
但编译器会发出警告,告诉您这可能是不安全的操作


如果使用泛型,只要代码在编译时没有出现警告,
就不会遇到运行时[color=red]ClassCastException[/color][color=darkred]类转换异常[/color]


[size=large]限制泛型可用类型[/size]

在定义泛型类别时,预设可用使用任何的类型来实例化泛型中的类型,但是如果想要限制使用泛型类别时,只能用某个特定类型或者是其子类型才能实例化该类型时,可用在定义类型时,使用[color=red]extends[/color]关键字指定这个类型[color=red] 必须是继承某个类,或者实现某个接口[/color]

正确:public class GenericFoo {}

错误:泛型绝对不可以使用implements关键字来 实现某个接口,这里没有为什么,这就是语法要求!!!
public class GenericFoo {}

当没有指定泛型继承的类型或接口时,,默认使用[color=red]T extends Object,[/color]所以默认情况下任何类型都可以作为参数传入

public class GenericFoo {} 等同 public class GenericFoo {}

你可能感兴趣的:(java总结)