code: 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;
  	}
docs: 根据一个调用参数数组，获取一个对象的构建信息
  
  @param <T>
  对象类型信息
  @param type
  对象类型
  @param args
  参考构建参数
  @return 构建信息对象