Closed yangxiaolou closed 4 years ago
*
@return 构造方法,如果未找到返回null */ @SuppressWarnings("unchecked") public static Constructor getConstructor(Class clazz, Class<?>... parameterTypes) { if (null == clazz) { return null; }
final Constructor<?>[] constructors = getConstructors(clazz); Class<?>[] pts; for (Constructor<?> constructor : constructors) { pts = constructor.getParameterTypes(); if (ClassUtil.isAllAssignableFrom(pts, parameterTypes)) { // 构造可访问 setAccessible(constructor); return (Constructor<T>) constructor; } } return null;
} 这里,第二个参数不传的话永远为null,还是说bean对象必须要有一个缺省的构造函数? public static boolean isAllAssignableFrom(Class<?>[] types1, Class<?>[] types2) { if (ArrayUtil.isEmpty(types1) && ArrayUtil.isEmpty(types2)) { return true; } if (null == types1 || null == types2) { // 任何一个为null不相等(之前已判断两个都为null的情况) return false; } if (types1.length != types2.length) { return false; }
看来是必须要有默认构造函数了
*
@return 构造方法,如果未找到返回null */ @SuppressWarnings("unchecked") public static Constructor getConstructor(Class clazz, Class<?>... parameterTypes) {
if (null == clazz) {
return null;
}
} 这里,第二个参数不传的话永远为null,还是说bean对象必须要有一个缺省的构造函数? public static boolean isAllAssignableFrom(Class<?>[] types1, Class<?>[] types2) { if (ArrayUtil.isEmpty(types1) && ArrayUtil.isEmpty(types2)) { return true; } if (null == types1 || null == types2) { // 任何一个为null不相等(之前已判断两个都为null的情况) return false; } if (types1.length != types2.length) { return false; }