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<T [color=red]extends [/color]List> {}

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

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

public class GenericFoo<T> {} 等同 public class GenericFoo<T extends Object> {}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值