我有一个 Java 项目,我正在从 Java 8 迁移到 Java 13。这个项目使用 ResourceBundles 来启用语言本地化。
在 Java 8 中,我为 ResourceBundle.getBundle(baseName, control) 提供了一个自定义 ResourceBundle.Control ,但这在 Java 9+ 中不再起作用。据我了解,我必须改为提供一个自定义的 ResourceBundleProvider 接口,我称之为 UiProvider,以及该接口的一个实现 UiProviderImpl,它必须用作服务。
为了生成模块描述符,我使用了 moditect maven 插件。但看起来我不能在任何地方添加提供指令,只能导出、打开和使用指令。还是我错过了什么?这是我尝试配置的 pom.xml 的摘录。这可以解决吗?
<module>
<moduleInfo>
<name>net.babelsoft.negatron</name>
<opens>net.babelsoft.negatron;</opens>
<uses>theme.language.spi.UiProvider</uses>
<provides>theme.language.spi.UiProvider with theme.language.spi.UiProviderImpl</provides>
</moduleInfo>
</module>