gpt4 book ai didi

java - 需要 java.util.ArrayList,找到 java.lang.Object : I do not understand the reason for this error

转载 作者:行者123 更新时间:2023-12-01 17:30:04 24 4
gpt4 key购买 nike

以下是 jsp 页面的一些片段:

<%! ArrayList songList = new ArrayList<String>(); %>

<%
songList = StoreSongLink.linkList;
// linkList is a static variable in the class StoreSongLink
// There the linkList is defined as public static ArrayList<String> linkList = new ArrayList<String>();
%>

<%} else {
for (ArrayList<String> list : songList){}

%>

else srciplet 中的代码产生错误 required java.util.ArrayList<String> found java.lang.Object 。为什么是这样 ?我不明白其中的原因。

为什么编译器说 SongList 是 Object 类型?

最佳答案

您应该在开始时明确声明它:

ArrayList<String> songList = new ArrayList<String>();

如果你这样声明:

ArrayList songList = new ArrayList<String>();

那么你是说 songListArrayListObject s,无论 = 右侧是什么。分配不会改变这一点,因此:

ArrayList songList = new ArrayList<String>();
songList = StoreSongLink.linkList;

不改变 songList 的类型,仍然有效ArrayList<Object> .

如果您修复了声明,那么您的 for循环应如下所示:

for (String list : songList){}

因为songListString 的数组列表s。如您所见,Java 提取每个 Object来自songList并尝试将其分配给您在 : 左侧声明的内容,您已经告诉它是 ArrayList<String> 。它无法转换 ObjectArrayList<String> (特别是因为Object实际上只是下面的String),所以它会抛出错误。

关于java - 需要 java.util.ArrayList<String>,找到 java.lang.Object : I do not understand the reason for this error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987781/

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