src/org/nutz/lang/born/Borns.java
private static <T> BornContext<T> evalWithArgs(Class<T> type, Object[] args) {
		// 准备变参数组
		Object dynaArg = Mirror.evalArgToSameTypeRealArray(args);

		// 准备好参数类型
		Class<?>[] argTypes = Mirror.evalToTypes(args);

		BornContext<T> re = evalWithArgTypes(false, type, argTypes, dynaArg);

		if (null == re)
			return null;

		if (MatchType.LACK == re.getMatchType()) {
			re.setArgs(Lang.arrayLast(args, re.getLackArg()));
		} else {
			re.setArgs(args);
		}

		switch (re.getMatchType()) {
		case LACK:
			re.setArgs(Lang.arrayLast(args, re.getLackArg()));
			break;
		case NEED_CAST:
			re.setArgs(Lang.array2ObjectArray(args, re.getCastType()));
			break;
		default:
			re.setArgs(args);
		}

		return re;
	}
private static <T> BornContext<T> evalWithArgs(Class<T> type, Object[] args) {
		// 准备变参数组
		Object dynaArg = Mirror.evalArgToSameTypeRealArray(args);

		// 准备好参数类型
		Class<?>[] argTypes = Mirror.evalToTypes(args);

		BornContext<T> re = evalWithArgTypes(false, type, argTypes, dynaArg);

		if (null == re)
			return null;

		if (MatchType.LACK == re.getMatchType()) {
			re.setArgs(Lang.arrayLast(args, re.getLackArg()));
		} else {
			re.setArgs(args);
		}

		switch (re.getMatchType()) {
		case LACK:
			re.setArgs(Lang.arrayLast(args, re.getLackArg()));
			break;
		case NEED_CAST:
			re.setArgs(Lang.array2ObjectArray(args, re.getCastType()));
			break;
		default:
			re.setArgs(args);
		}

		return re;
	}
根据一个调用参数数组，获取一个对象的构建信息

@param <T>
对象类型信息
@param type
对象类型
@param args
参考构建参数
@return 构建信息对象