test/jdk/java/awt/datatransfer/CustomClassLoaderTransferTest/TransferableList.java
author fyang
Mon, 04 Nov 2019 16:10:39 +0800
changeset 59307 fc216dcef2bb
parent 47216 71c04702a3d5
permissions -rw-r--r--
8233466: aarch64: remove unnecessary load of mdo when profiling return and parameters type Reviewed-by: adinn

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 {}