在Kotlin注释参数中使用java常量
在Spring Boot(使用Java)中,我通常将缓存名称放在静态最终字符串中,如下所示:在Kotlin注释参数中使用java常量,java,eclipse,caching,spring-boot,kotlin,Java,Eclipse,Caching,Spring Boot,Kotlin,在Spring Boot(使用Java)中,我通常将缓存名称放在静态最终字符串中,如下所示: public static final String MY_CACHE_NAME = "cache_name" @Cacheable(value = MY_CACHE_NAME) 但是,当我有一个具有这个缓存名称的java类,并且我尝试在Kotlin缓存方法中使用它时,Eclipse告诉我这不是一个“编译时常量”。有办法解决这个问题吗 在eclipse之外,一切都很顺利…这很奇怪,这肯定会起作用。您
public static final String MY_CACHE_NAME = "cache_name"
@Cacheable(value = MY_CACHE_NAME)
但是,当我有一个具有这个缓存名称的java类,并且我尝试在Kotlin缓存方法中使用它时,Eclipse告诉我这不是一个“编译时常量”。有办法解决这个问题吗
在eclipse之外,一切都很顺利…这很奇怪,这肯定会起作用。您可能有配置问题。检查您的Kotlin插件和项目是否使用相同版本的Kotlin,不同版本通常会导致奇怪的编译器错误。如果可能,请在这两个位置使用最新版本 这是我尝试的示例代码,它在
1.1.50
上运行得非常好(这是胡说八道,但它可以编译):
- MyConstants.java
public class MyConstants { public static final String MY_CACHE_NAME = "cache_name"; }
- DemoApplication.kt
@SpringBootApplication class DemoApplication fun main(args: Array<String>) { SpringApplication.run(DemoApplication::class.java, *args) } @Cacheable(MyConstants.MY_CACHE_NAME) fun someFunction() {}
@springboot应用程序 类演示应用程序 趣味主线(args:Array){ run(DemoApplication::class.java,*args) } @可缓存(MyConstants.MY_CACHE_NAME) fun someFunction(){}