String.valueOfメソッドの呼び出しに問題があります。引数として、整数型を返すジェネリックメソッドを渡しました。そして、プログラムはString.valueOfメソッドを呼び出すために、返されたIntegerをchar []にキャストしようとするため、例外がスローされます。私が知っているように、StringにはオーバーロードされたvalueOf()メソッドがあり、そのうちの1つはIntegerパラメータを取ることができます。
以下は、状況を示すEclipse式評価のスクリーンショットです。
この行は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));
}
コンパイラは、X
あなたがそれを呼び出す方法を正しく推論することになっていますか?
に分割
YourType qualityRaw = model.get(property);
String quality = String.valueOf(qualityRaw);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加