private static Object fetchArrayValue(Object arrayOrList, int index) {
		if (arrayOrList == null) {
			return null;
		}

		Class<?> clazz = arrayOrList.getClass();
		boolean isArray = ClassHelper.isTypeArray(clazz);
		boolean isList = ClassHelper.isTypeList(clazz);

		if (!isArray && !isList) {
			throw new IllegalArgumentException("arrayOrList参数必须为数组或者List的实现类");
		}

		if (isArray) {
			Class<?> componentType = clazz.getComponentType();
			if (!componentType.isPrimitive()) {
				return ((Object[]) arrayOrList)[index];
			}

			return fetchPrimitiveArrayValue(arrayOrList, index, componentType);
		} else {
			return ((List<?>) arrayOrList).get(index);
		}

	}