All Downloads are FREE. Search and download functionalities are using the official Maven repository.

global.namespace.neuron.di.internal.DefineSubclassForJava9 Maven / Gradle / Ivy

package global.namespace.neuron.di.internal;

import global.namespace.neuron.di.internal.proxy.Proxies;
import global.namespace.neuron.di.java.BreedingException;

import java.lang.invoke.MethodHandles;

import static java.lang.invoke.MethodHandles.lookup;
import static java.lang.invoke.MethodHandles.privateLookupIn;

final class DefineSubclassForJava9 implements DefineSubclass {

    private static final MethodHandles.Lookup lookup = lookup();

    @Override
    @SuppressWarnings({"unchecked", "Since15"})
    public  Class apply(final Class clazz, final String name, final byte[] b) {
        try {
            return (Class) privateLookupIn(null != clazz.getClassLoader() ? clazz : Proxies.class, lookup)
                    .defineClass(b);
        } catch (IllegalAccessException e) {
            throw new BreedingException(e);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy