なぜ次のコードのコンパイルを行います。定数注釈パラメータを計算できないのはなぜですか?
final String name = "works";
@Provides @Named(name) String provideAboutTitle() {
return "ABC";
}
をしかし、次のコードは、(少なくとも、Eclipseのコンパイラで)失敗します。
final String name = UUID.randomUUID().toString();
@Provides @Named(name) String provideAboutTitle() {
return "ABC";
}
Eclipseのコンパイラは次のエラーを返します。
The value for annotation attribute Named.value must be a constant expression
第2の例は定数ではありませんか? –
可能なソリューションについては、こちらも参照してください。 http://stackoverflow.com/questions/13253624/how-to-supply-enum-value-to-an-annotation-from-a-constant-in-java – atom88