Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ServiceLoader中的Iterable对象是否已排序?_Java_Iterable_Serviceloader - Fatal编程技术网

Java ServiceLoader中的Iterable对象是否已排序?

Java ServiceLoader中的Iterable对象是否已排序?,java,iterable,serviceloader,Java,Iterable,Serviceloader,我有一个很简单的问题,但我找不到正确的答案 所以在我的项目中,我有一个抽象类“JmjrstPlugin”,其他一些插件从中继承。我使用javas ServiceLoader查找所有插件类,如下所示: public static Iterable<JmjrstPlugin> getPlugins() { return ServiceLoader.load(JmjrstPlugin.class); } publicstaticiterable getPlugins(){

我有一个很简单的问题,但我找不到正确的答案

所以在我的项目中,我有一个抽象类“JmjrstPlugin”,其他一些插件从中继承。我使用javas ServiceLoader查找所有插件类,如下所示:

public static Iterable<JmjrstPlugin> getPlugins() {   
     return ServiceLoader.load(JmjrstPlugin.class);
}
publicstaticiterable getPlugins(){
返回ServiceLoader.load(JmjrstPlugin.class);
}
我的问题是:我从这个函数中接收到的Iterable对象是Ordered吗。 (JmjrstPlugin实现了Comparable接口,并有一个compareTo方法)

PS:该项目目前处于一种状态,我现在无法对其进行测试。

Javadoc of说:

此工具强制执行的唯一要求是提供程序类必须具有零参数构造函数,以便在加载期间可以实例化它们

这意味着它不关心您的实现类是否实现了
compariable

此外,
集合
通常是无序集合,除非另有明确规定。javadoc没有指定,因此它是无序的。

如中所述:

迭代器方法的每次调用都返回一个迭代器,该迭代器首先按照实例化顺序生成缓存的所有元素