gpt4 book ai didi

Java 为 Integer 参数调用 String.valueOf(char[] data) 而不是 String.valueOf(int i) 并抛出 ClassCastException

转载 作者:行者123 更新时间:2023-11-29 04:12:27 27 4
gpt4 key购买 nike

我在调用 String.valueOf 方法时遇到问题。作为参数,我传递了返回 Integer 类型的通用方法。然后抛出异常,因为程序试图将返回的 Integer 转换为 char[] 以调用 String.valueOf 方法。据我所知,String 已经重载了 valueOf() 方法,其中之一可以采用 Integer 参数。

下面是显示情况的 Eclipse 表达式计算的屏幕截图。

Evaluated expression

这一行抛出 ClassCastException

String quality = String.valueOf(model.get(property));

这是 model.get(property) 调用的内容:

public <X> X get(String property) {
X value = null;
try {
if (allowNestedValues && NestedModelUtil.isNestedProperty(property)) {
return (X) NestedModelUtil.getNestedValue(this, property);
}
if (map != null) {
Object objValue = map.get(property);
if (objValue != null)
value = (X) objValue;
}
} catch (Exception e) {
}
return map == null ? null : value;
}

编辑:

我添加了这个条件,编译器进入了 if 语句

if(model.get(property) instanceof Integer)
{
quality = String.valueOf(model.get(property));
}

enter image description here

最佳答案

编译器应该如何按照您调用它的方式推断出正确的 X

拆分成

YourType qualityRaw = model.get(property);
String quality = String.valueOf(qualityRaw);

关于Java 为 Integer 参数调用 String.valueOf(char[] data) 而不是 String.valueOf(int i) 并抛出 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54292561/

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