gpt4 book ai didi

java - 为什么不能将 ArrayList 分配给 List 变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:44:04 24 4
gpt4 key购买 nike

为什么下面的代码不起作用?

import java.net.URL;
import java.util.ArrayList;
import java.util.List;

List<List<URL>> announces;
announces = new ArrayList<ArrayList<URL>>();

错误如下:

Type mismatch: cannot convert from ArrayList<ArrayList<URL>> to <List<List<URL>>

最佳答案

因为您的泛型绑定(bind)到一个类型 List<URL> .即只有 List (这是一个接口(interface))被接受。

您可以使用 wildcards 允许任何列表.

List<? extends List<URL>> announces;

你也可以考虑subtyping .示例:

List<List<URL>> announces = new ArrayList<List<URL>>();
announces.add(new ArrayList<URL>());
announces.add(new LinkedList<URL>());

这是有效的,因为通用类型接受 List<URL>ArrayList , LinkedList 是一个 List .

关于java - 为什么不能将 ArrayList 分配给 List 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5230124/

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