List<? extends Comparable<Double>> x8 = new ArrayList<Double> (); 编译会出错吗
时间: 2023-06-03 17:04:12 浏览: 57
不会出错。因为 <? extends Comparable<Double>> 表示 x8 可以是 Comparable<Double> 或其子类,而 Double 实现了 Comparable<Double> 接口,所以可以将 ArrayList<Double> 赋值给 x8。
相关问题
List<? extends Father> list2 = new ArrayList<>(); 要怎么赋值
List<? extends Father> list2 = new ArrayList<>();
这里的通配符表示这个 List 中的元素可以是 Father 或 Father 的子类,但具体哪个子类是不确定的。
要赋值,可以通过以下方式:
1. 直接将一个已经存在的 List 赋值给 list2:
```
List<Son> sonList = new ArrayList<>();
list2 = sonList; // 此时 list2 中的元素类型将被确定为 Son,因为 sonList 中的元素类型是 Son
```
2. 创建一个新的 List,并将其赋值给 list2:
```
List<Son> sonList = new ArrayList<>();
List<? extends Father> newList = new ArrayList<>(sonList);
list2 = newList; // 此时 list2 中的元素类型将被确定为 Son,因为 newList 中的元素类型是 Son
```
需要注意的是,由于 list2 中的元素类型是不确定的,因此不能直接向其中添加元素,否则会出现编译错误。如果需要添加元素,可以使用 List<? super Son>,这样可以保证 List 中的元素类型是 Son 或者 Son 的父类。
List<? extends Number> x5 = new ArrayList<Integer> ();编译会出错吗
不会。这是Java中的泛型,可以将一个 Integer 类型的 ArrayList 赋值给一个 List<? extends Number> 类型的变量。这是因为 Integer 类型是 Number 类型的一个子类。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)