0

今日、コードで興味深い問題に遭遇しました。Grails2.2.0を使用しています。

これがコードです

def user = lookupUserClass().get(params.id)
log.info "[update]user.subscriptionExpiryDate1: " + user.subscriptionExpiryDate
user.subscriptionExpiryDate = Calendar.getInstance();
log.info "[update]user.subscriptionExpiryDate2: " + user.subscriptionExpiryDate
if (user.subscriptionExpiryDate instanceof Calendar ) {
    log.error "***** Is A Calendar Instance ***"
} else if (user.subscriptionExpiryDate instanceof String ) {
    log.error "***** Is A String Instance ***"
}  else {
    log.error "***** Is Something else ***"
}

if (!user.save()) {
    log.error "[update]Error occured saving user. Errors are: "
    user.errors.each { err -> log.error err; }
    render view: 'edit', model: buildUserModel(user)
    return
} else {
    log.info "[update]Successfully saved user"
}

subscriptionExpiryDateUserオブジェクトのカレンダープロパティです。

保存を実行すると、次のエラーが発生します

タイプ'java.lang.String'のプロパティ値をプロパティ'subscriptionExpiryDate'に必要なタイプ'java.util.Calendar'に変換できませんでした。ネストされた例外はjava.lang.IllegalArgumentExceptionです:日付を解析できませんでした:解析できない日付:2013年5月3日

何も目立たないので、上記のコードでこのエラーが表示される理由を誰かに説明してもらえますか?

4

1 に答える 1