package org.nutz.lang.born; import java.lang.reflect.Constructor; import org.nutz.lang.Lang; public class ConstructorCastingBorning<T> extends AbstractConstructorBorning implements Borning<T> { private Class<?>[] pts; public ConstructorCastingBorning(Constructor<T> c) { super(c); this.pts = c.getParameterTypes(); } @SuppressWarnings("unchecked") public T born(Object... args) { try { args = Lang.array2ObjectArray(args, pts); return (T) call(args); } catch (Exception e) { throw new BorningException(e, c.getDeclaringClass(), args); } } }