class or interface, the value is an instance that
extends that class.
When accessing the registry at run time, the key must be a compile time constant. The
lookup is performed during native image generation, and the resulting value is put into
the compiled code as a literal constant. Therefore, the actual map that stores the key-value data
is not necessary at run time, and there is no lookup overhead at run time.
ImageSingletons avoids static fields: instead of filling a static field during native
image generation and accessing it at run time, the value is put into the ImageSingletons.
Usually, that happens in one of the early initialization methods of a Feature.
| Access | Constructor and Description |
|---|---|
| private |
| Modifier and Type | Method and Description |
|---|---|
| public static <T> void | |
| public static boolean | |
| public static <T> T |
| ImageSingletons | back to summary |
|---|---|
| private ImageSingletons() | |
| add | back to summary |
|---|---|
| public static <T> void add(Class<T> key, T value) Add a singleton to the registry. The key must be unique, i.e., no value must have been registered with the given class before.
| |
| contains | back to summary |
|---|---|
| public static boolean contains(Class<?> key) Checks if a singleton is in the registry. The key must be a compile time constant, so that
the call to this method can be replaced with the constant
The method returns file="org/graalvm/nativeimage/ImageSingletonsTest.java" region="ImageSingletonsTest"
native image as
well as outside of it.
| |
| lookup | back to summary |
|---|---|
| public static <T> T lookup(Class<T> key) Lookup a singleton in the registry. The key must be a compile time constant, so that the call to this method can be replaced with the constant configuration objects.
The key must have been
| |