![]() If the target elements can be resolved, the calls are removed and instead the target elements are embedded in the code. If the arguments to these calls can be reduced to a constant, Native Image tries to resolve the target elements. The analysis intercepts calls to Class.forName(String), Class.forName(String, ClassLoader), Class.getDeclaredField(String), Class.getField(String), Class.getDeclaredMethod(String, Class), Class.getMethod(String, Class), Class.getDeclaredConstructor(Class), and Class.getConstructor(Class). ![]() See also the guide on assisted configuration of Java resources and other dynamic features. Where the analysis fails, the program elements reflectively accessed at run time must be specified using a manual configuration. ![]() Native Image tries to resolve the target elements through a static analysis that detects calls to the Reflection API. (Note: loading classes with Class.forName(String) are included here since it is closely related to reflection.) Native Image has partial support for reflection and needs to know ahead-of-time the reflectively accessed program elements.Įxamining and accessing program elements through .* or loading classes with Class.forName(String) at run time requires preparing additional metadata for those program elements. ![]() Java reflection support (the .* API) enables Java code to examine its own classes, methods, fields and their properties at run time. ![]()
0 Comments
Leave a Reply. |