Использование константы java в параметре аннотации Kotlin

В Spring Boot (с Java) я обычно помещаю имена кеша в статические конечные строки, например:

public static final String MY_CACHE_NAME = "cache_name" @Cacheable(value = MY_CACHE_NAME) 

Но, когда у меня есть класс java с этими именами кеша, и я пытаюсь использовать его в кеш-методе Kotlin, Eclipse говорит мне, что это не «константа времени компиляции». Есть ли способ решить это?

Вне затмения все идет хорошо …

Solutions Collecting From Web of "Использование константы java в параметре аннотации Kotlin"

Это довольно странно, это определенно должно работать. Вероятно, у вас проблема конфигурации. Убедитесь, что ваш плагин 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() {}