* @param obj
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T from(final T obj) {
final MethodCallInterceptor interceptor = new MethodCallInterceptor(obj);
final Class<?> clazz = obj.getClass();
final Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(clazz);
enhancer.setCallback(interceptor);
final T instance = (T) enhancer.create();