gpt4 book ai didi

java - 奇怪的行为,Long 的通用 ArrayList

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

我有someMethod()返回 Collection<Long> .

ArrayList<Long> results = (ArrayList<Long>) someMethod();
Long value = results.get(0);

我得到 ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long .尝试 System.out.println(results.get(0));事实上,它返回例如[32] .我不明白。这是Long的ArrayList!为什么 get(0)返回 ArrayList

这有助于:

Object o = results.get(0);
ArrayList<Long> al = (ArrayList<Long>) o;
Long val = al.get(0);

但为什么需要这个?

最佳答案

很明显someMethod()实际上正在返回 Collection<List<Long>> ,违反声明的返回类型。由于类型删除,这是可能的。只要类类型正确,编译器就会很高兴,可以忽略泛型类型(编译器只会发出警告)。基本上这是 someMethod() 中的错误.

关于java - 奇怪的行为,Long 的通用 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133247/

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