A JVM class file.
Generic Java classfiles have one additional attribute for classes,
methods and fields:
"Signature" (u4 attr-length, u2 signature-index)
A signature gives the full Java type of a method or field. When
used as a class attribute, it indicates type parameters, followed
by supertype, followed by all interfaces.
methodOrFieldSignature ::= type
classSignature ::= [ typeparams ] supertype { interfacetype }
The type syntax in signatures is extended as follows:
type ::= ... | classtype | methodtype | typevar
classtype ::= classsig { '.' classsig }
classig ::= 'L' name [typeargs] ';'
methodtype ::= [ typeparams ] '(' { type } ')' type
typevar ::= 'T' name ';'
typeargs ::= '<' type { type } '>'
typeparams ::= '<' typeparam { typeparam } '>'
typeparam ::= name ':' type
This class defines constants used in class files as well
as routines to convert between internal ``.'' and external ``/''
separators in class names.
This is NOT part of any API supported by Sun Microsystems. If
you write code that depends on this, you do so at your own risk.
This code and its internal interfaces are subject to change or
deletion without notice.
|