Intereting Posts
Как я могу получить ценность от наблюдаемых Связывающий адаптер с несколькими аргументами в Котлине добавить Google Fit distance (DataPoint выходит за пределы диапазона) Царство превращает транзакцию в наблюдаемую Firebase UI для хранения с Kotlin дает ошибку Как получить общий класс param в Котлине? В чем причина использования суффикса «Kt» в классах Котлина? Невозможно найти явную активность (Котлин) Как получить данные из базы данных Firebase и сохранить их в ListArray <Class>? – Котлин Удалите все неиспользуемые ресурсы из проекта Android Переназначение переменных посредством деструктурирования Котлинский эквивалент «экспортного дефолта» в JavaScript Самый простой способ получить возможность hotswap при использовании транспилера kotlin-to-js? Возврат компилятора Kotlin: неразрешенная ссылка: springframework весной 5.0 Несколько конструкторов в неизменяемом (data) классе

Использование константы 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() {}