import java.io.Serializable; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; public class TransferableList extends ArrayList { private static class NullInvocationHandler implements InvocationHandler, Serializable { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { throw new Error("UNIMPLEMENTED"); } } public TransferableList() { try { InvocationHandler handler = new NullInvocationHandler(); Class<?> proxyClass = Proxy.getProxyClass( ListInterface.class.getClassLoader(), new Class[] { ListInterface.class, AnotherInterface.class }); AnotherInterface obj = (AnotherInterface) proxyClass. getConstructor(new Class[]{InvocationHandler.class}). newInstance(handler); } catch (Exception e) { e.printStackTrace(); } } } interface ListInterface extends Serializable {}