此方法对方法的返回值的默认值进行处理和返回。
isPrimitive()判断返回类型是否是基本类型
基本类型:
Java的基本类型有八种:int, double, float, long, short, boolean, byte, char, void.
基本类型属于Class的一个子集。
private Object getDefaultResult(Class<?> methodReturnType, Class<?> realReturnClass) {
Object result = null;
// 基础类型
if (methodReturnType.isPrimitive()) {
if (methodReturnType == boolean.class) {
result = Boolean.FALSE;
} else if (methodReturnType == char.class) {
result = Character.MIN_VALUE;
} else if (methodReturnType != void.class) {
result = -1;
}
} else if (methodReturnType.isArray()) {
// 引用类型
result = Array.newInstance(realReturnClass, 0);
} else {
// 类或者接口
try {
// 如果显示的指定了返回类型则使用
if (realReturnClass != Object.class) {
result = realReturnClass.newInstance();
} else {
result = methodReturnType.newInstance();
}
} catch (Exception e) {
log.error("返回值类型为类或者接口时,newInstance error", e);
}
}
return result;
}