调用string.valueof方法时出现问题。作为参数,我传递了返回整数类型的泛型方法。然后引发异常,因为程序尝试将返回整数的char[]强制转换为调用string.valueof方法。正如我所知,字符串重载了valueof()方法,其中一个方法可以接受整数参数。
下面是Eclipse表达式评估的屏幕截图,显示了情况。
此行引发ClassCastException
String quality = String.valueOf(model.get(property));
这是model.get(property)调用的内容:
public 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));
}