public final class ReflectionPlugins extends Object
Method
, MethodHandle
, or VarHandle
instances. This avoids manual registration of these elements using a reflection configuration
file.
One important assumption made in this class is that the return types of all folded methods do not
have object identity, i.e., it is allowed to return a cached object instead of creating a new
object at every invocation. While the types we allow
are not
explicitly specified in the JDK to have no object identity, there are enough caches also in the
JDK so that any code that would rely on object identity is error-prone on any JVM.Modifier and Type | Class and Description |
---|---|
static class |
ReflectionPlugins.ReflectionPluginRegistry |
Modifier and Type | Method and Description |
---|---|
static void |
registerInvocationPlugins(ImageClassLoader imageClassLoader,
org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection,
AnnotationSubstitutionProcessor annotationSubstitutions,
org.graalvm.compiler.nodes.graphbuilderconf.ClassInitializationPlugin classInitializationPlugin,
org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins,
com.oracle.graal.pointsto.meta.AnalysisUniverse aUniverse,
ParsingReason reason) |
public static void registerInvocationPlugins(ImageClassLoader imageClassLoader, org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection, AnnotationSubstitutionProcessor annotationSubstitutions, org.graalvm.compiler.nodes.graphbuilderconf.ClassInitializationPlugin classInitializationPlugin, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins, com.oracle.graal.pointsto.meta.AnalysisUniverse aUniverse, ParsingReason reason)