gpt4 book ai didi

java - 创建抛出编译器错误的对象列表

转载 作者:行者123 更新时间:2023-11-29 03:01:29 25 4
gpt4 key购买 nike

我目前正在学习泛型作为我的编程类(class)的一部分,但我无法理解为什么以下代码会引发编译器错误:

List<Object> objs = Arrays.asList(1,"2");

据我所知,如果您没有显式声明方法的类型参数,例如 Arrays.<Integer>asList();然后使用最合理的选择为您生成。

以下代码:

List<Object> objs = Arrays.<Object>asList(1,"2");

之所以有效,是因为我明确地告诉编译器,“我希望此方法的类型参数为 Object”,但我很好奇为什么这没有自动成功完成?

最佳答案

出现这个问题是因为不同的类型参数被传递给方法 Arrays.asList,所以编译器试图找到你的类型参数的所有父类(super class)型的交集。

您使用 Stringint 参数创建了一个列表。所以编译器只发现 Serializable 作为通用接口(interface)。

这将被编译:

List<? extends Serializable> list = Arrays.asList(1, "2");

引用阅读: http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.html#FAQ404

关于java - 创建抛出编译器错误的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34588948/

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