学习、分享

站在巨人的肩膀上

JAVA 泛型

Java范型广泛应用于容器类,如ArrayList<String>即是一个使用泛化的例子,内部定义为ArrayList<T>
当然,大多数时候,范型是可以用Object代替的,相比Object,使用范型更加安全,编译器能对类型的检查更加完善。使用范型不需要使用cast,能在编译时就发现问题。

范型的简单例子:

上面是一个基本的例子,如果换用Object来实现,需要cast,并且可能发生ClassCastException异常。
同时,使用范型接口,能对实现类直接生成具体的类,下面是一个例子:

范型可以用来限制某些类才能合法使用方法:
List<? extends Fruit> 表示 List 中可以放置 Fruit 的子类, 如ArrayList<Apple>ArrayList<Orange>
List<? super Fruit> 表示 List 中可以放置任意 Fruit 的父类, 如ArrayList<Object>

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注