Sponsored Link •
|
Advertisement
|
This section describes the details of resolving each type of constant pool entry, including the errors that
may be thrown during resolution. If an error is thrown during resolution, the error is seen as being thrown by
the instruction that refers to the constant pool entry being resolved. Besides the errors described here,
individual instructions that trigger the resolution of a constant pool entry may cause other errors to be
thrown. For example, getstatic
causes a
CONSTANT_Fieldref_info
entry to be resolved. If the entry is resolved
successfully, the virtual machine performs one additional check: it makes sure the field is actually static (a
class variable and not an instance variable). If the field is not static, the virtual machine throws an error. Any
extra errors that may be thrown during resolution besides those described in this section are described for
each individual instruction in Appendix A.
In the following sections, the term current class loader
refers to the defining class
loader, whether it be a user-defined class loader or the bootstrap class loader, for the type whose constant
pool contains the symbolic reference being resolved. The term current namespace
refers
to the namespace of the current class loader, the set of all type names for which the current class loader has
been marked as an initiating loader.