gpt4 book ai didi

java - 无法确定一段代码的错误在哪里

转载 作者:行者123 更新时间:2023-12-01 22:32:35 25 4
gpt4 key购买 nike

List<String> list1 = new ArrayList<String> ( );

String [] arpan = { "eggs" , "lazers" , "hats" ,"pie" };

for ( String s: arpan )

list1.add(s);

Collection<String> t = list1;//correct statement

t.add("umbrella");

Collections<String> t = list1;//wrong statement

在上面的代码中,语句“Collection t = list1;”是正确的但是

“集合 t = list1;” 错误 为什么

注意:-**我知道 **Collections 是一个实现接口(interface)的类
Collection
ArrayList 是一个实现接口(interface) List 的类,而 List 接口(interface)又实现了扩展接口(interface)集合。但是我无法使用此信息来消除我的困惑请帮忙!!

最佳答案

首先你定义了两个同名的对象t ,所以代码甚至无法编译。

其次,Collections是一个实用类,不能定义为泛型类型。这意味着您必须删除 <String>从它的定义来看,但是你的代码仍然无法编译,因为 tList对象并且不能显式类为 Collections .

如果将其转换到 Collections ,那么是的,您的代码将编译。

Collections t = (Collections)list1;

但是当你运行它时它会生成一个错误,因为你将错误的对象类型转换为 Collections (List)。异常(exception)情况是

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Collections

集合的使用与您在这里尝试做的完全不同。由于它是一个实用程序类,因此它的主要用途是对其他Collection进行操作对象并从中获得各种结果。

正确的用法类似于从 Collection 计算最小值对象

Collections.min(list1)将返回eggs在您的情况下,因为它按字母顺序排列它们并获取第一个条目(最小值)。

结论:Collections类不是Collection !它包含多个操作或返回 Collection 的静态方法。对象。

关于java - 无法确定一段代码的错误在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27401426/

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