package com.ctrip.platform.dal.dao.helper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Iterator;
import java.util.ServiceLoader;
public class ServiceLoaderHelper {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceLoaderHelper.class);
public static <T> T getInstance(Class<T> clazz) {
T instance = null;
try {
Iterator<T> iterator = getIterator(clazz);
if (iterator.hasNext())
return iterator.next();
} catch (Throwable e) {
LOGGER.error(e.getMessage(), e);
}
return instance;
}
private static <T> Iterator<T> getIterator(Class<T> clazz) {
ServiceLoader<T> loader = ServiceLoader.load(clazz);
return loader.iterator();
}
}