[英]Using a java constant in a Kotlin annotation parameter
在 Spring Boot(使用 Java)中,我通常將緩存名稱放在靜態最終字符串中,如下所示:
public static final String MY_CACHE_NAME = "cache_name"
@Cacheable(value = MY_CACHE_NAME)
但是,當我有一個帶有這個緩存名稱的 java 類並且我嘗試在 Kotlin 緩存方法中使用時,Eclipse 告訴我這不是一個“編譯時常量”。 有沒有辦法解決這個問題?
在日食之外,一切都很好......
這很奇怪,這絕對有效。 您可能有配置問題。 檢查您的 Kotlin 插件和您的項目是否使用相同版本的 Kotlin,不同版本經常會導致奇怪的編譯器錯誤。 如果可能,請在兩個地方使用最新版本。
這是我嘗試過的在1.1.50
上運行良好的示例代碼(這是廢話,但它可以編譯):
我的常量.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() {}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.