《Effective Java》(04):泛型

本篇为《Effective Java》读书笔记系列04(多图预警!)。

笔记

23

26

29

补充

条目29

首先考虑这样一种情形:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Favorites {
private Map<String, Object> fav = new HashMap<>();
public void putFavorite(String s, Object o) {
fav.put(s, o);
}
public Object getFavorite(String s) {
return fav.get(s);
}
}
Favorites favorite = new Favorites();
Apple apple = new Apple();
favorite.putFavorite("喜爱", apple);
Apple apple01 = (Apple)favorite.getFavorite("喜爱");

这个时候需要在最后一行向上转型,而且当出现下面这种情形时:

1
2
3
Orange orange = new Orange();
favorite.putFavorite("喜爱", orange);
Apple apple02 = (Apple)favorite.getFavorite("喜爱");

会出现运行时错误,破坏了Java类型安全。