All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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