在 Spring Boot(使用 Java)中,我通常将缓存名称放在静态最终字符串中,如下所示:
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() {}
关于java - 在 Kotlin 注释参数中使用 java 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46454648/