GraalVM Native Image Generation applies static analysis and ahead-of-time compilation to build a highly optimized native executable, called Native Image, for Java applications. This requires a closed-world assumption of reachable application classes: all classes need to be known at native image generation time so that the static analysis can process them.
The closed-world assumption conflicts with the open-world approach of Java reflection: Using functionality from the package
java.lang.reflect, an application developer can look up classes, methods, and fields by name and access / invoke them. In typical cases, the names are loaded from configuration files or dynamically constructed at run time. Native image generation supports reflection, but requires all elements visible via reflection to be listed during image generation. Read the complete article here.
For regular information become a member in the Developer Partner Community please register here.