package org.nutz.lang.born; import java.lang.reflect.Method; import org.nutz.lang.Lang; public class MethodCastingBorning<T> implements Borning<T> { private Method method; private Class<?>[] pts; public MethodCastingBorning(Method method) { this.method = method; this.method.setAccessible(true); this.pts = method.getParameterTypes(); } @SuppressWarnings("unchecked") public T born(Object... args) { try { args = Lang.array2ObjectArray(args, pts); return (T) method.invoke(null, args); } catch (Exception e) { throw new BorningException(e, method.getDeclaringClass(), args); } } }