私のフォームにはtextFieldがあります:
add(new TextField<String>("awayScore", new PropertyModel<String>(value, "awayScore") {
private static final long serialVersionUID = 1L;
@Override
public String getObject() {
logger.info("textField");
return super.getObject();
}
}));
ご覧のとおり、ロガーを追加するだけです。
ここでは何も問題はありませんでしたが、アプリケーションを実行すると、次のエラーが発生しました。
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at org.toursys.web.PlayOffPage$PlayOffForm$2$1$1.getObject(PlayOffPage.java:135)
行 135 には以下が含まれます。
return super.getObject();
これをオーバーライドしなくても機能するため、私はそれについて本当に混乱しています
アップデート:
コードを次のように編集すると:
Object value = super.getObject();
logger.error(value.getClass() + "");
このコードは次を返します。
class java.lang.Integer
コンパイラによれば、これは文字列を返すはずなので、これは本当に奇妙です