goja-core/src/main/java/goja/core/kits/reflect/ClassKit.java
public static Class<?> createCompositeInterface(Class<?>[] interfaces, ClassLoader classLoader) {
        Preconditions.checkNotNull(interfaces, "Interfaces must not be empty");
        Preconditions.checkNotNull(classLoader, "ClassLoader must not be null");
        return Proxy.getProxyClass(classLoader, interfaces);
    }
public static Class<?> createCompositeInterface(Class<?>[] interfaces, ClassLoader classLoader) {
        Preconditions.checkNotNull(interfaces, "Interfaces must not be empty");
        Preconditions.checkNotNull(classLoader, "ClassLoader must not be null");
        return Proxy.getProxyClass(classLoader, interfaces);
    }
public static Class < ? > createCompositeInterface ( Class < ? > [ ] interfaces , ClassLoader classLoader ) { Preconditions . checkNotNull ( interfaces , "Interfaces must not be empty" ) ; Preconditions . checkNotNull ( classLoader , "ClassLoader must not be null" ) ; return Proxy . getProxyClass ( classLoader , interfaces ) ; }
Create a composite interface Class for the given interfaces,
implementing the given interfaces in one single Class.
<p>This implementation builds a JDK proxy class for the given interfaces.

@param interfaces  the interfaces to merge
@param classLoader the ClassLoader to create the composite Class in
@return the merged interface as Class
@see java.lang.reflect.Proxy#getProxyClass
Create a composite interface Class for the given interfaces implementing the given interfaces in one single Class . <p > This implementation builds a JDK proxy class for the given interfaces .