当前位置: 首页 > 知识库问答 >
问题:

将java.util.集合转换为整数数组

习旻
2023-03-14

运行代码时,出现以下错误:

Caused by: java.lang.ClassCastException: java.util.Collections$UnmodifiableSet cannot be cast to [Ljava.lang.Integer;

导致的代码是:

Integer[] selects = (Integer[]) tbl_analytes.getValue();

但当我这样做时:

Object obj = tbl_analytes.getValue();
System.out.println(obj);

我得到以下输出:

[1,7,15]

我不明白为什么我不能将其转换为整数[]。有什么建议吗?

共有3个答案

王高超
2023-03-14

“tbl\U分析物”似乎是一个集合,而不是一个数组。您不能强制转换它,您必须转换它:

Integer[] array = set.toArray(new Integer[0]);
子车芷阳
2023-03-14
final ArrayList<Integer> integerList = new ArrayList<>();
final Integer[] integerArray = new Integer[integerList.size()];
integerList.toArray(integerArray);
仉运乾
2023-03-14

Collection接口具有将Collections转换为数组的方法:

Object[] toArray();

<T> T[] toArray(T[] a);

您不能将一个对象从一个类型强制转换为一个不相关的类型,然后期望它工作。

打印集合生成的输出与打印数组时获得的输出类似,这一事实并不意味着什么。

 类似资料:
  • 现有两个名为getDetails(…)的方法 。一个需要至少一个必需参数,另一个需要一个集合(不验证集合的内容/大小)。 问题是集合有时会作为空传递,并且根据我的业务案例,我总是期望至少传递一个值。因此,我需要将该方法设为私有,它接受集合。 我计划将下面的方法作用域设置为private,这样调用者就不会使用零属性调用此方法。 调用方方法之一是将集合对象传递给下面的getDetails, id.ge

  • 我想在Scala中映射Java数组。对于普通的Java集合,我知道我可以使用 但是,对于阵列,此转换不起作用: 那么,如何将Java数组转换为Scala集合、iterable或可以映射的对象呢?

  • Set似乎是一种创建具有保证唯一元素的数组的好方法,但它不提供任何获取属性的好方法,除了generator[Set].values,它以的尴尬方式调用。 如果您可以在集合上调用和类似的函数,那么这是可以的。但你也不能那样做。 我尝试过,但似乎只转换了类数组(NodeList和TypedArrays?)对象设置为数组。再试一次:对Sets不起作用,set.prototype没有类似的静态方法。 那么

  • 问题内容: 如果我运行,Laravel会执行以下烦人的事情,即向集合中的每个模型添加键,如下所示: 我如何摆脱“ 4”和“ 7”,所以它是我的对象的数组? 我运行的代码是: 问题答案: 问题在于该方法不会为基础集合数组重新设置密钥。因此,Collection仍表示一个数组,只是您的数组看起来像这样: 尽管这在PHP中是一个非常有效的数组,但在JSON中却不是一个合适的数组。由于无法将其表示为JSO

  • 主要内容:之前的旧方法,Java11 的 新方法,Java11 集合转换为数组 的示例Java 11 引入了一种将集合转换为数组的简单方法。 之前的旧方法 Java11 的 新方法 Java11 集合转换为数组 的示例 ApiTester.java 输出结果为  

  • 我想显示一个图形,为了显示它,我需要整数值。我从我的代码中得到这个 有没有什么方法可以让我以这样一种方式转换集合以获得整数值?我在打印集合c时得到这个