src/main/java/com/rockagen/commons/util/ClassUtil.java
public static Constructor<?> getDeclaredConstructor(Class<?> clazz,
			boolean recursively, Class<?>... parameterTypes) {

		try {
			return clazz
					.getDeclaredConstructor(parameterTypes);
		} catch (NoSuchMethodException e) {
			Class<?> superClass = clazz.getSuperclass();
			if (superClass != null && recursively) {
				return getDeclaredConstructor(superClass, true,
						parameterTypes);
			}
		} catch (SecurityException e) {
			log.error("{}",e.getMessage(),e);
		}
		return null;
	}
public static Constructor<?> getDeclaredConstructor(Class<?> clazz,
			boolean recursively, Class<?>... parameterTypes) {

		try {
			return clazz
					.getDeclaredConstructor(parameterTypes);
		} catch (NoSuchMethodException e) {
			Class<?> superClass = clazz.getSuperclass();
			if (superClass != null && recursively) {
				return getDeclaredConstructor(superClass, true,
						parameterTypes);
			}
		} catch (SecurityException e) {
			log.error("{}",e.getMessage(),e);
		}
		return null;
	}
obtain constructor list of specified class If recursively is true, obtain
constructor from all class hierarchy


@param clazz class
where fields are searching
@param recursively
param
@param parameterTypes parameter types
@return constructor