NLS 初始化消息传递



我正在使用NLS.initializeMessages(BUNDLE_NAME, XYZ.class)来加载常量。

当"BUNDLE_NAME"和"XYZ.class"存在于同一项目中时,它可以工作,但是当它在不同的项目中时,它不起作用。

当我们在不同的项目中有"BUNDLE_NAME"和"XYZ.class"时,我们可以使用上述 API 吗?

如果该类位于另一个插件中,而该插件不在插件的依赖项列表中,那么您需要知道插件的 id 才能加载该类。

您将使用以下方法获取该类:

Bundle bundle = Platform.getBundle("the plugin id");
Class<?> theClass = bundle.loadClass("the class name");

然后,您可以使用类NLS.initializeMessages但是您指定的BUNDLE_NAME必须可由类加载器加载theClass - 这意味着它必须位于同一插件或该插件的依赖项之一中,它不能在您的插件中。

最新更新