类 SignatureWriter
java.lang.Object
cn.taketoday.bytecode.signature.SignatureVisitor
cn.taketoday.bytecode.signature.SignatureWriter
A SignatureVisitor that generates signature literals, as defined in the Java Virtual Machine
Specification (JVMS).
- 作者:
- Thomas Hallgren, Eric Bruneton
- 另请参阅:
-
字段概要
字段修饰符和类型字段说明private intThe stack used to keep track of class types that have arguments.private booleanWhether the visited signature contains formal type parameters.private booleanWhether the visited signature contains method parameter types.private final StringBuilderThe builder used to construct the visited signature.从类继承的字段 cn.taketoday.bytecode.signature.SignatureVisitor
EXTENDS, INSTANCEOF, SUPER -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明private voidEnds the type arguments of a class or inner class type.private voidEnds the formal type parameters section of the signature.toString()Returns the signature that was built by this signature writer.Visits a signature corresponding to an array type.voidvisitBaseType(char descriptor) Visits a signature corresponding to a primitive type.Visits the class bound of the last visited formal type parameter.voidvisitClassType(String name) Starts the visit of a signature corresponding to a class or interface type.voidvisitEnd()Ends the visit of a signature corresponding to a class or interface type.Visits the type of a method exception.voidVisits a formal type parameter.voidvisitInnerClassType(String name) Visits an inner class.Visits the type of an interface implemented by the class.Visits an interface bound of the last visited formal type parameter.Visits the type of a method parameter.Visits the return type of the method.Visits the type of the super class.voidVisits an unbounded type argument of the last visited class or inner class type.visitTypeArgument(char wildcard) Visits a type argument of the last visited class or inner class type.voidvisitTypeVariable(String name) Visits a signature corresponding to a type variable.
-
字段详细资料
-
stringBuilder
The builder used to construct the visited signature. -
hasFormals
private boolean hasFormalsWhether the visited signature contains formal type parameters. -
hasParameters
private boolean hasParametersWhether the visited signature contains method parameter types. -
argumentStack
private int argumentStackThe stack used to keep track of class types that have arguments. Each element of this stack is a boolean encoded in one bit. The top of the stack is the least significant bit. Pushing false = *2, pushing true = *2+1, popping = /2.Class type arguments must be surrounded with '<' and '>' and, because
- class types can be nested (because type arguments can themselves be class types),
- SignatureWriter always returns 'this' in each visit* method (to avoid allocating new SignatureWriter instances),
we need a stack to properly balance these 'parentheses'. A new element is pushed on this stack for each new visited type, and popped when the visit of this type ends (either is visitEnd, or because visitInnerClassType is called).
-
-
构造器详细资料
-
SignatureWriter
public SignatureWriter()Constructs a newSignatureWriter.
-
-
方法详细资料
-
visitFormalTypeParameter
从类复制的说明:SignatureVisitorVisits a formal type parameter.- 覆盖:
visitFormalTypeParameter在类中SignatureVisitor- 参数:
name- the name of the formal parameter.
-
visitClassBound
从类复制的说明:SignatureVisitorVisits the class bound of the last visited formal type parameter.- 覆盖:
visitClassBound在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the class bound.
-
visitInterfaceBound
从类复制的说明:SignatureVisitorVisits an interface bound of the last visited formal type parameter.- 覆盖:
visitInterfaceBound在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the interface bound.
-
visitSuperclass
从类复制的说明:SignatureVisitorVisits the type of the super class.- 覆盖:
visitSuperclass在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the super class type.
-
visitInterface
从类复制的说明:SignatureVisitorVisits the type of an interface implemented by the class.- 覆盖:
visitInterface在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the interface type.
-
visitParameterType
从类复制的说明:SignatureVisitorVisits the type of a method parameter.- 覆盖:
visitParameterType在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the parameter type.
-
visitReturnType
从类复制的说明:SignatureVisitorVisits the return type of the method.- 覆盖:
visitReturnType在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the return type.
-
visitExceptionType
从类复制的说明:SignatureVisitorVisits the type of a method exception.- 覆盖:
visitExceptionType在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the exception type.
-
visitBaseType
public void visitBaseType(char descriptor) 从类复制的说明:SignatureVisitorVisits a signature corresponding to a primitive type.- 覆盖:
visitBaseType在类中SignatureVisitor- 参数:
descriptor- the descriptor of the primitive type, or 'V' forvoid.
-
visitTypeVariable
从类复制的说明:SignatureVisitorVisits a signature corresponding to a type variable.- 覆盖:
visitTypeVariable在类中SignatureVisitor- 参数:
name- the name of the type variable.
-
visitArrayType
从类复制的说明:SignatureVisitorVisits a signature corresponding to an array type.- 覆盖:
visitArrayType在类中SignatureVisitor- 返回:
- a non null visitor to visit the signature of the array element type.
-
visitClassType
从类复制的说明:SignatureVisitorStarts the visit of a signature corresponding to a class or interface type.- 覆盖:
visitClassType在类中SignatureVisitor- 参数:
name- the internal name of the class or interface.
-
visitInnerClassType
从类复制的说明:SignatureVisitorVisits an inner class.- 覆盖:
visitInnerClassType在类中SignatureVisitor- 参数:
name- the local name of the inner class in its enclosing class.
-
visitTypeArgument
public void visitTypeArgument()从类复制的说明:SignatureVisitorVisits an unbounded type argument of the last visited class or inner class type.- 覆盖:
visitTypeArgument在类中SignatureVisitor
-
visitTypeArgument
从类复制的说明:SignatureVisitorVisits a type argument of the last visited class or inner class type.- 覆盖:
visitTypeArgument在类中SignatureVisitor- 参数:
wildcard- '+', '-' or '='.- 返回:
- a non null visitor to visit the signature of the type argument.
-
visitEnd
public void visitEnd()从类复制的说明:SignatureVisitorEnds the visit of a signature corresponding to a class or interface type.- 覆盖:
visitEnd在类中SignatureVisitor
-
toString
Returns the signature that was built by this signature writer. -
endFormals
private void endFormals()Ends the formal type parameters section of the signature. -
endArguments
private void endArguments()Ends the type arguments of a class or inner class type.
-