Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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_Java_Maven_Serviceloader - Fatal编程技术网

Java 从不同包加载ServiceLoader

Java 从不同包加载ServiceLoader,java,maven,serviceloader,Java,Maven,Serviceloader,我使用ServiceProviderPattern编写了一个通用的ServiceLocator public <T> List<T> locateAll(final Class<T> clazz) { final Iterator<T> iterator = ServiceLoader.load(clazz).iterator(); final List<T> services = new ArrayList<T&

我使用ServiceProviderPattern编写了一个通用的
ServiceLocator

public <T> List<T> locateAll(final Class<T> clazz) {
    final Iterator<T> iterator = ServiceLoader.load(clazz).iterator();
    final List<T> services = new ArrayList<T>();

    while (iterator.hasNext()) {
        try {
            services.add(iterator.next());
        } catch (ServiceConfigurationError serviceError) {
            serviceError.printStackTrace(System.err);
        }
    }

    return services;
}
公共列表locateAll(最后一节课){
final Iterator Iterator=ServiceLoader.load(clazz.Iterator();
最终列表服务=新的ArrayList();
while(iterator.hasNext()){
试一试{
add(iterator.next());
}捕获(ServiceConfigurationError serviceError){
serviceError.printStackTrace(System.err);
}
}
返回服务;
}
只有当我将服务作为依赖项添加到
ServiceLocator
抵制的maven模块时,它才会查找服务。如果此服务使用
ServiceLocator
本身,则我将具有循环依赖性

我需要
ServiceLocator
从未知依赖项加载类