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;
	}
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 构建信息对象
根据一个调用参数数组，获取一个对象的构建信息