public <T extends Object> T errorReturn(Integer code, String message, Type type){
Class<?>[] classTypes = new Class[]{int.class, String.class};
Object[] params = new Object[]{code, message};
Class clazz = null;
Constructor<T> con = null;
T t = null;
try {
String a = type.getTypeName();
if (a.contains("<")){
clazz = Class.forName(a.substring(0, a.indexOf("<")));
}else {
clazz = Class.forName(a);
}
con = clazz.getConstructor(classTypes);
t = (T)con.newInstance(params);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (NoSuchMethodException e) {
e.printStackTrace();
}catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return t;
}
根据Type获取类名映射对象,并根据构造方法赋值
最新推荐文章于 2024-10-20 11:34:08 发布