我正在使用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
- 这意味着它必须位于同一插件或该插件的依赖项之一中,它不能在您的插件中。