在Kotlin注释参数中使用java常量

时间:2017-09-27 18:17:15

标签: java eclipse caching spring-boot kotlin

在Spring Boot(使用Java)中,我通常将缓存名称放在静态最终字符串中,如下所示:

let config = try Config()
try config.setup()

let drop = try Droplet(config)
try drop.setup()

drop.get(handler: {req in

    if req.json != nil {

        print("ass")
        print(req.json!)
    }

    return "almaG"
})

但是,当我有一个带有这个缓存名称的java类并尝试在Kotlin缓存方法中使用时,Eclipse告诉我这不是"编译时常量"。有办法解决这个问题吗?

日食之外,一切都很顺利......

1 个答案:

答案 0 :(得分:1)

这很奇怪,这绝对有用。您可能遇到配置问题。检查您的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() {}