
me.aifaq.commons.lang.ServiceLoaderUtil Maven / Gradle / Ivy
The newest version!
package me.aifaq.commons.lang;
import java.util.*;
/**
* @author Wang Wei [[email protected]]
* @since 17:11 2017/12/7
*/
public class ServiceLoaderUtil {
/**
* @see #load(ClassLoader, Class)
*/
public static T load(Class clazz) {
final ClassLoader classloader = Thread.currentThread().getContextClassLoader();
return load(classloader, clazz);
}
/**
* Java SPI 获取类实例
*
* @param classloader
* @param clazz
* @param
* @return
*/
public static T load(ClassLoader classloader, Class clazz) {
ServiceLoader loader = ServiceLoader.load(clazz, classloader);
Iterator iterator = loader.iterator();
List entityList = new ArrayList<>();
while (iterator.hasNext()) {
try {
entityList.add(iterator.next());
} catch (ServiceConfigurationError ignore) {
}
}
return entityList.isEmpty() ? null : entityList.get(0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy