当我在资源内部的项目中添加新的属性文件并将其命名为“ lang1”时,将正确识别出BUNDLE_NAME。
但是,如果我添加一个包含lang2_de和lang2_en的ResourceBundle,并尝试使用其基本名称作为BUNDLE_NAME,它将向我显示以下错误“无效的资源包引用'lang2'。
所以我基本上有3个文件。
lang2被捆绑到带有“'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,代码中使用的所有字符串都显示有检查错误“字符串文字'testprop'似乎不是有效的属性键...”
我还在JetBrains / java-annotations内部为此创建了一个问题:
https://github.com/JetBrains/java-annotations/issues/13
答案 0 :(得分:1)
感谢您提交报告,该错误已在https://youtrack.jetbrains.com/issue/KT-31359提交,请follow it for updates。