0

別の初心者の問題。Groovy でドメイン クラス プロパティに値を割り当てなければならない状況があります。

コードは

cf."$it.key" = it.value

cf."$it.key" のプロパティ タイプは、Integer、Long、または String にすることができますが、it.value は常に String です。cf."$it.key" が Integer または Long の場合、groovy は it.value を ascii 値に変換します (たとえば、it.value が "6" の場合、cf."$it.key" は 54 になります)。それは「7」であり、55 などになります)。現在のところ、以下に示すチェック方法を導入することで問題を解決しています。しかし、問題に対するより良い解決策があるかどうか疑問に思っていました。

              if (it.value.isInteger()){
                  cf."$it.key" = new Integer(it.value)
              }
              else if (it.value.isLong()){
                  cf."$it.key" = new Long(it.value)
              }

ありがとう

4

1 に答える 1

0

マップを反復処理していると仮定すると、bindDataを使用できるはずです。

bindData( cf, map )

ただし、セキュリティへの影響があるため、ドキュメントのそのセクションを必ず読んでください。

于 2012-08-13T20:30:47.630 に答える