package cn.mutils.core.runtime;
public class CC {
/**
* Get instance of interface
*
* If name of interface is "cn.mutils.demo.IUserInfoService", Return instance name of class is
* "cn.mutils.demo.impl.UserInfoServiceImpl"
*
* @param clazz Interface definition
* @param <T> Class whose name should be keep for proguard
* @return Implementation object
*/
public static <T extends IService> T getService(Class<T> clazz) {
try {
StringBuilder sb = new StringBuilder();
sb.append(clazz.getPackage().getName());
sb.append(".impl.");
sb.append(clazz.getSimpleName().substring(1));
sb.append("Impl");
return (T) Class.forName(sb.toString()).newInstance();
} catch (Exception e) {
return null;
}
}
}