簡體   English   中英

在 Kotlin 注釋參數中使用 java 常量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM