@PropertyKey Аннотация работает не с Kotlin, а с Java - PullRequest
1 голос
/ 30 апреля 2019

Когда я добавляю новый файл свойств в свой проект внутри ресурсов и называю его, например, "lang1", BUNDLE_NAME распознается правильно.

Но если я добавляю ResourceBundle, содержащий lang2_de и lang2_en, и пытаюсьиспользовать его базовое имя в качестве BUNDLE_NAME, оно показывает мне следующую ошибку "Недопустимая ссылка на пакет ресурсов 'lang2'.

Так что у меня в основном 3 файла.

  1. lang1_de.properties
  2. lang2_de.properties
  3. lang2_en.properties

lang2 объединен в Resource Bundle с "'base name' = lang2"

Это работает с kotlin:

private const val BUNDLE_NAME = "lang1"

fun foo(@PropertyKey(resourceBundle = BUNDLE_NAME) key: String): String {
    return key
}

Это не так:

private const val BUNDLE_NAME = "lang2"

fun foo(@PropertyKey(resourceBundle = BUNDLE_NAME) key: String): String {
    return key
}

Но если я делаю то же самое с Java, это работает ...

private static final String BUNDLE_NAME = "lang2";

public static void foo(@PropertyKey(resourceBundle = BUNDLE_NAME) String key) {
    return key;
}

Я делаюэто для получения информации о том, что мои свойства используются внутри моего кода.

Свойства помечены правильно в файлах свойств для обоих примеров.

Но для lang2 все строки, используемые внутри кода, всешоуn с ошибкой проверки «Строковый литерал« testprop »не является допустимым ключом свойства ...»

Я также создал проблему для этого в JetBrains / java-annotations:
https://github.com/JetBrains/java-annotations/issues/13

1 Ответ

1 голос
/ 08 мая 2019

Спасибо за отчет, ошибка была отправлена ​​на https://youtrack.jetbrains.com/issue/KT-31359, пожалуйста следите за обновлениями .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...