Search code examples
javadynamic-proxy

Dynamic Proxy - Class Loader parameter when creating a new proxy instance


I was wondering about when you call the newProxyInstance method when creating a dynamic proxy instance, what exactly is the ClassLoader argument for?

public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException

Many thanks!

P.S. I'm not sure how to use the code formatting tags correctly.


Solution

  • The documentation for newProxyInstance defines its use to be equivalent to:

    Proxy.getProxyClass(loader, interfaces).
        getConstructor(new Class[] { InvocationHandler.class }).
        newInstance(new Object[] { handler });
    

    So, if you want a bit more detail about loader, you can look at the documentation for getProxyClass. Basically, it just serves as the class loader that defines the generated proxy class.