java 泛型 类型转换
时间: 2023-07-08 14:47:01 浏览: 69
Java 泛型中,类型转换通常涉及到两个操作:向上转型和向下转型。
1. 向上转型
向上转型是将子类对象赋值给父类引用的操作,例如:
```
ArrayList<String> list = new ArrayList<>();
List<String> list2 = list; // 向上转型
```
在上述代码中,ArrayList<String> 是 List<String> 的子类,因此可以将 ArrayList<String> 对象赋值给 List<String> 引用,这就是向上转型。
2. 向下转型
向下转型是将父类引用转换为子类引用的操作,需要使用强制类型转换符号 (Type)。例如:
```
List<String> list2 = new ArrayList<>();
ArrayList<String> list = (ArrayList<String>) list2; // 向下转型
```
在上述代码中,List<String> 是 ArrayList<String> 的父类,因此需要使用强制类型转换将 List<String> 引用转换为 ArrayList<String> 引用,这就是向下转型。
需要注意的是,在进行向下转型时,需要确保父类引用指向的对象真正是子类对象,否则会抛出 ClassCastException 异常。可以使用 instanceof 关键字进行类型检查,例如:
```
if (list2 instanceof ArrayList) {
ArrayList<String> list = (ArrayList<String>) list2;
// 向下转型
}
```
在上述代码中,可以通过 instanceof 关键字检查 list2 是否是 ArrayList 对象,如果是,则可以进行向下转型。