当前位置: 首页 > 面试题库 >

用Java列出类的toArray-为什么不能将“整数”列表转换为“整数”数组?

刘博雅
2023-03-14
问题内容

我定义 List<Integer> stack = new ArrayList<Integer>();

当我尝试通过以下方式将其转换为数组时:

Integer[] array= stack.toArray();

我得到这个异常:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Type mismatch: cannot convert from Object[] to Integer[].

为什么?它与Integer到Integer完全相同。当类是父子关系时,这不是一般情况

我尝试进行投射:

    Integer[] array= (Integer[]) stack.toArray();

但是在这里我得到这个错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;

问题是什么?


问题答案:

由于类型擦除,ArrayList在运行时不知道其通用类型,因此它只能为您提供最通用的Object
[]。您需要使用另一个toArray方法,该方法允许您指定所需的数组类型。

Integer[] array= stack.toArray(new Integer[stack.size()]);


 类似资料:
  • 我将图像转换为整数列表。例如。[226,137,125,226,137,125,223,137,133,223,136,128、226、138、120、226、129、116、228、138、123、227、134、124、227、140、127、225、136、119、228、135、126、225、134、121、223、130、108、226、139、119、123、120、221、129、

  • 我正在做一些关于Java8流特性的练习,所以我想把这些知识应用到将数字串转换成整数列表的问题上 一个典型的测试看起来像

  • 问题内容: python中是否存在可以将不断增加的整数列表转换为范围列表的内容 例如,给定集合{0,1,2,3,4,7,8,9,11},我想得到{{0,4},{7,9},{11,11}}。 我可以编写一个程序来执行此操作,但想知道python中是否有内置函数 问题答案: 使用产生了一个简洁但棘手的实现: 输出:

  • 问题内容: 我正在尝试将一个数字从一个整数转换为另一个整数,如果以十六进制打印,它将看起来与原始整数相同。 例如: 将20转换为32(即0x20) 将54转换为84(即0x54) 问题答案: 即,将原始数字视为十六进制,然后将其转换为十进制。

  • 问题内容: 将转换为的快速方法是什么? 例如 问题答案: 看看ByteBuffer类。 设置字节顺序保证了,,和。 或者,你可以手动执行以下操作: 该班是专为尽管这样的脏手任务。实际上,私有定义了以下辅助方法:

  • 我对Spark和Scala相当陌生。我试图调用一个函数作为火花UDF,但我遇到了这个错误,我似乎不能解决。 我知道在Scala中,Array和Seq是不一样的。WrappedArray是Seq的一个子类型,WrappedArray和Array之间有隐式转换,但我不确定为什么在UDF的情况下没有这样做。 任何帮助我理解和解决这个问题的指针都非常感谢。 下面是代码片段 查看数据帧“j” 但是,调用UD