src/org/nutz/lang/born/Borns.java
@SuppressWarnings({"rawtypes", "unchecked"})
	private static <T> BornContext<T> evalWithoutArgs(Class<T> type) {
		// 准备好返回对象
		BornContext<T> re = new BornContext<T>();
		Mirror<T> mirror = Mirror.me(type);
		boolean isAbstract = Modifier.isAbstract(type.getModifiers());

		// 先看看有没有默认构造函数
		try {
			if (!isAbstract) {
				re.setBorning(new EmptyArgsConstructorBorning<T>(type.getConstructor()));
				return re.setArgs(new Object[0]);
			}
		}
		// 如果没有默认构造函数 ...
		catch (Exception e) {}
		// 看看有没有默认静态工厂函数
		Method[] stMethods = mirror.getStaticMethods();
		for (Method m : stMethods) {
			if (m.getReturnType().equals(type) && m.getParameterTypes().length == 0) {
				return re.setBorning(new EmptyArgsMethodBorning<T>(m)).setArgs(new Object[0]);
			}
		}
		// 看看有没有带一个动态参数的构造函数
		if (!isAbstract) {
			for (Constructor<?> cons : type.getConstructors()) {
				Class<?>[] pts = cons.getParameterTypes();
				if (pts.length == 1 && pts[0].isArray()) {
					Object[] args = new Object[1];
					args[0] = Mirror.blankArrayArg(pts);
					return re.setBorning(new ConstructorBorning(cons)).setArgs(args);
				}
			}
		}
		// 看看有没有带一个动态参数的静态工厂函数
		for (Method m : stMethods) {
			Class<?>[] pts = m.getParameterTypes();
			if (m.getReturnType() == type && m.getParameterTypes().length == 1 && pts[0].isArray()) {
				Object[] args = new Object[1];
				args[0] = Mirror.blankArrayArg(pts);
				return re.setBorning(new MethodBorning<T>(m)).setArgs(args);
			}
		}

		return null;
	}
@SuppressWarnings({"rawtypes", "unchecked"})
	private static <T> BornContext<T> evalWithoutArgs(Class<T> type) {
		// 准备好返回对象
		BornContext<T> re = new BornContext<T>();
		Mirror<T> mirror = Mirror.me(type);
		boolean isAbstract = Modifier.isAbstract(type.getModifiers());

		// 先看看有没有默认构造函数
		try {
			if (!isAbstract) {
				re.setBorning(new EmptyArgsConstructorBorning<T>(type.getConstructor()));
				return re.setArgs(new Object[0]);
			}
		}
		// 如果没有默认构造函数 ...
		catch (Exception e) {}
		// 看看有没有默认静态工厂函数
		Method[] stMethods = mirror.getStaticMethods();
		for (Method m : stMethods) {
			if (m.getReturnType().equals(type) && m.getParameterTypes().length == 0) {
				return re.setBorning(new EmptyArgsMethodBorning<T>(m)).setArgs(new Object[0]);
			}
		}
		// 看看有没有带一个动态参数的构造函数
		if (!isAbstract) {
			for (Constructor<?> cons : type.getConstructors()) {
				Class<?>[] pts = cons.getParameterTypes();
				if (pts.length == 1 && pts[0].isArray()) {
					Object[] args = new Object[1];
					args[0] = Mirror.blankArrayArg(pts);
					return re.setBorning(new ConstructorBorning(cons)).setArgs(args);
				}
			}
		}
		// 看看有没有带一个动态参数的静态工厂函数
		for (Method m : stMethods) {
			Class<?>[] pts = m.getParameterTypes();
			if (m.getReturnType() == type && m.getParameterTypes().length == 1 && pts[0].isArray()) {
				Object[] args = new Object[1];
				args[0] = Mirror.blankArrayArg(pts);
				return re.setBorning(new MethodBorning<T>(m)).setArgs(args);
			}
		}

		return null;
	}
为一个给定类，寻找一个不需要参数的构造方法

@param <T>
类
@param type
类实例
@return 构造信息