我有一个非常简单的问题,但是我找不到正确的答案。
因此,在我的项目中,我有一个抽象类“ JmjrstPlugin”,其他一些插件也从中继承。我正在使用javas ServiceLoader查找所有如下所示的插件类:
public static Iterable<JmjrstPlugin> getPlugins() {
return ServiceLoader.load(JmjrstPlugin.class);
}
我的问题是:我是否已从此函数收到Iterable Object。
(JmjrstPlugin实现Comparable接口并具有有效的compareTo方法)。
PS:该项目目前处于无法使用的状态,因此我现在无法对其进行测试。
最佳答案
ServiceLoader
的Javadoc说:
此功能强制执行的唯一要求是,提供程序类必须具有零参数构造函数,以便可以在加载期间实例化它们。
这意味着不管您的实现类是否实现Comparable
。
另外,除非另有明确说明,Set
通常是无序集合。 javadoc没有指定,因此它是无序的。