有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

public static final String MY_CACHE_NAME = "cache_name"

@Cacheable(value = MY_CACHE_NAME)

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

在eclipse之外,一切都很好


共 (1) 个答案

  1. # 1 楼答案

    这很奇怪,这肯定有用。您可能有配置问题。检查你的Kotlin插件和你的项目是否使用同一版本的Kotlin,不同的版本通常会导致奇怪的编译器错误。如果可能,在这两个地方使用最新版本

    这是我尝试过的在1.1.50上运行得非常好的示例代码(这是胡说八道,但它可以编译):

    • 霉素。爪哇

      public class MyConstants {
          public static final String MY_CACHE_NAME = "cache_name";
      }
      
    • 演示应用程序。kt

      @SpringBootApplication
      class DemoApplication
      
      fun main(args: Array<String>) {
          SpringApplication.run(DemoApplication::class.java, *args)
      }
      
      @Cacheable(MyConstants.MY_CACHE_NAME)
      fun someFunction() {}