没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
泛型存取原则和 PECS 法则
总结泛型中的“ ? extends” 和“? super” 通配符的特征,我们可以得出以下结论:
1) 如果你想从一个数据类型里获取数据,使用 ? extends 通配符
2) 如果你想把对象写入一个数据结构里,使用 ? super 通配符
3) 如果你既想存,又想取,那就别用通配符。
这就是 Maurice Naftalin 在他的《 Java Generics and Collections 》 这本书中所
说的存取原则。那么泛型和数组的区别是什么;使用泛型中为什么要使用到通配符;什
么时候该用“ ? extends”,什么时候用“? super”;泛型的存取原则该如何理解;PECS
法则又是什么。带着这些疑问,我现在从 JAVA 的子类型、泛型的子类型、泛型和数组的
区别、通配符、向上转型向下转型的区别、存取原则和 PECS 法则。以循序渐进的顺序
带领大家更深一步了解泛型。
一:子类型
在 Java 中,跟其它具有面向对象类型的语言一样,类型的层级可以被设计成这样:
public class Fruit {
}
public class Apple extends Fruit{
}
public class Strawberry extends Fruit{
}
public class FujiApple extends Apple{
}
在 Java 中,类型
T 的子类型既可以是类
型 T 的一个扩展,也可
以是类型 T 的一个直接
或非直接实现(如果 T
是一个接口的话)。因
为“成为某类型的子类
型”是一个具有传递性
质的关系,如果类型 A
是 B 的一个子类型,B
是 C 的子类型,那么 A
也是 C 的子类型。
在上面的图中:
1) FujiApple(富士苹果)
是 Apple 的子类型
2) Apple 是 Fruit(水果)
的子类型
3) FujiApple(富士苹果)是 Fruit(水果)的子类型
4) 所有 Java 类型都是 Object 类型的子类型。
资源评论
- reillyyuan2013-08-165星,法则讲的很清楚
宝哥聊IT
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功