public static Class<?>[] getSuperclassRecursion(Class<?>[] result,
			Class<?> c) {
		Class<?> superClass = c.getSuperclass();
		if (superClass == Object.class) {
			return result;
		}
		if (result == null) {
			result = new Class<?>[] { superClass };
		} else {
			int size = result.length;
			result = Arrays.copyOf(result, size + 1);
			result[size] = superClass;
		}
		return getSuperclassRecursion(result, superClass);
	}