Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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 具有相同FQN的多个类(ServiceLoader)_Java_Java 6_Serviceloader - Fatal编程技术网

Java 具有相同FQN的多个类(ServiceLoader)

Java 具有相同FQN的多个类(ServiceLoader),java,java-6,serviceloader,Java,Java 6,Serviceloader,我正在使用创建一个轻量级插件框架 我目前正在努力研究如何用相同的FQN实现多个实现类。我希望在类路径上有两个相同插件的副本,并且可以访问META-INF/services目录中给出的两个实现类 下面是一些简单的eclipse项目,它们说明了我的意思: ServiceLoaderIntf具有由插件实现的简单接口。ProjectOne和ProjectTwo代表插件。ServiceLoader有一个Tester类,它遍历实现者并对其调用init()方法 我如何让它识别所有的实现者,即使实现类具有相同的

我正在使用创建一个轻量级插件框架

我目前正在努力研究如何用相同的FQN实现多个实现类。我希望在类路径上有两个相同插件的副本,并且可以访问META-INF/services目录中给出的两个实现类

下面是一些简单的eclipse项目,它们说明了我的意思:

ServiceLoaderIntf具有由插件实现的简单接口。ProjectOne和ProjectTwo代表插件。ServiceLoader有一个Tester类,它遍历实现者并对其调用init()方法


我如何让它识别所有的实现者,即使实现类具有相同的FQN?现在,它只识别ProjectOne中的插件类。

因为服务类由同一个共享类加载器加载,所以不能对实现类使用相同的FQN

此外,在不同的实现之间共享相同的FQN是没有意义的,因为类名至少应该暗示它的用途