gpt4 book ai didi

java - 为什么我们不能做 List mylist = ArrayList();

转载 作者:IT老高 更新时间:2023-10-28 13:54:00 24 4
gpt4 key购买 nike

为什么我们做不到

List<Parent> mylist = ArrayList<child>();

最佳答案

假设我们可以。那么这个程序就应该没问题了:

ArrayList<Banana> bananas = new ArrayList<Banana>();
List<Fruit> fruit = bananas;
fruit.add(new Apple());

Banana banana = bananas.get(0);

这显然不是类型安全的 - 你最终在香蕉集合中得到了一个苹果。

可以做的是:

List<? extends Fruit> fruit = new ArrayList<Banana>();

这是安全的,因为编译器不会让您尝试将添加到水果列表中。它知道这是一个某种水果的列表,所以你可以这样写:

Fruit firstFruit = fruit.get(0);

但它不知道它列出的具体水果种类,并确保你不会做错事。

Java generics FAQ另一种解释。

关于java - 为什么我们不能做 List<Parent> mylist = ArrayList<child>();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com