gpt4 book ai didi

Java:ClassCastException 整数错误

转载 作者:行者123 更新时间:2023-12-02 02:33:50 26 4
gpt4 key购买 nike

Exception in thread "main" java.lang.ClassCastException: [I cannot be cast to java.lang.Integer
at KnapSackWeights$Sack.getWeight(KnapSackWeights.java:124)
at KnapSackWeights.fillKnapSackRecursion(KnapSackWeights.java:93)
at KnapSackWeights.fillKnapSack(KnapSackWeights.java:73)
at KnapSackWeights.main(KnapSackWeights.java:33)

嗨,我正在研究背包问题,其中用户在一行中输入数字,第一个数字是目标。但是,我不断收到上面指定的错误。我用谷歌搜索了一下,我理解了这个错误,但我不明白为什么它会被抛出到代码中。

最佳答案

你的问题是线路

myWeights.bagOfWeights.add(weights);

在其中将 int[] 类型的值添加到您实际上只想包含 Integer 值的结构中。当您从结构中检索该数组时,JVM 无法将其转换为Integer

为了让编译器捕获这种错误,你最好这样写

class Sack extends ArrayList<Integer>

它指示编译器确保 Integer 值是您可以放入 Sack 中的唯一内容。

当然,这并不能解决您尝试添加 int[] 的原始错误。为了解决这个问题,您可能需要编写某种循环 - 迭代数组,将 int 值一一添加到其中。

关于Java:ClassCastException 整数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46700534/

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