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

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


泛型(Generics)

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


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


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


限制泛型可用类型

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

正确:public class GenericFoo<T extends List> {}

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

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

public class GenericFoo<T> {} 等同 public class GenericFoo<T extends Object> {}




















你可能感兴趣的:(java)