何かが本当に奇妙です。 私は注釈値に静的な最終文字列を使用しています。Groovy - 注釈に静的な最終文字列を使用できません。
class Constants {
static final String myConstant = "ting tong"
}
class Service {
@CacheEvict(cacheNames = Constants.myConstant)
void doSomethingNice() {
}
}
しかし、私はそれをコンパイルすることはできません。
ここでエラーメッセージが
属性の 'myConstant' タイプ 'はjava.lang.String型' を持っている必要があります。しかし java.lang.Stringのタイプのインライン一定になるようにorg.springframework.cache.annotation.CacheEvict
期待 'Constants.getMyConstant()' @ に 型 'java.lang.Objectの' になっています@ org.springframework.cache.annotation.CacheEvict
何が問題になりますか?これはJavaで完璧に動作します
あなたはどこにでも '' '' '' ''キーワードを追加していませんか? '' myConstant'''の宣言に '' static'''キーワードがなければ、それは*インスタンス変数*です。したがって、JavaまたはGroovyの*クラス変数* notation''''Constant.myConstant'''を使用してアクセスすることは不可能です。 – BalRog
@BalRog oh yes。ごめんなさい。私は自分のクラスにstaticキーワードを持っていました。それに言及するのを忘れました。回答と質問を更新しました – Nerrve
'public'キーワードは必要ありません。 'public'はGroovyのデフォルトです。 – BalRog