- All Superinterfaces:
Comparable<LocalVariable>
,Mirror
public interface LocalVariable extends Mirror, Comparable<LocalVariable>
A local variable in the target VM. Each variable declared within a
Method
has its own LocalVariable object. Variables of the same
name declared in different scopes have different LocalVariable objects.
LocalVariables can be used alone to retrieve static information
about their declaration, or can be used in conjunction with a
StackFrame
to set and get values.- Since:
- 1.3
- See Also:
StackFrame
,Method
-
Method Summary
Modifier and Type Method Description boolean
equals(Object obj)
Compares the specified Object with this LocalVariable for equality.String
genericSignature()
Gets the generic signature for this variable if there is one.int
hashCode()
Returns the hash code value for this LocalVariable.boolean
isArgument()
Determines if this variable is an argument to its method.boolean
isVisible(StackFrame frame)
Determines whether this variable can be accessed from the givenStackFrame
.String
name()
Gets the name of the local variable.String
signature()
Gets the JNI signature of the local variable.Type
type()
Returns the type of this variable.String
typeName()
Returns a text representation of the type of this variable.
-
Method Details
-
name
String name()Gets the name of the local variable.- Returns:
- a string containing the name.
-
typeName
String typeName()Returns a text representation of the type of this variable. Where the type is the type specified in the declaration of this local variable.This type name is always available even if the type has not yet been created or loaded.
- Returns:
- a String representing the type of this local variable.
-
type
Returns the type of this variable. Where the type is the type specified in the declaration of this local variable.Note: if the type of this variable is a reference type (class, interface, or array) and it has not been created or loaded by the class loader of the enclosing class, then ClassNotLoadedException will be thrown. Also, a reference type may have been loaded but not yet prepared, in which case the type will be returned but attempts to perform some operations on the returned type (e.g.
fields()
) will throw aClassNotPreparedException
. UseReferenceType.isPrepared()
to determine if a reference type is prepared.- Returns:
- the
Type
of this local variable. - Throws:
ClassNotLoadedException
- if the type has not yet been loaded through the appropriate class loader.- See Also:
Type
,Field.type() - for usage examples
-
signature
String signature()Gets the JNI signature of the local variable.- Returns:
- a string containing the signature.
- See Also:
- Type Signatures
-
genericSignature
String genericSignature()Gets the generic signature for this variable if there is one. Generic signatures are described in the The Java™ Virtual Machine Specification.- Returns:
- a string containing the generic signature, or
null
if there is no generic signature. - Since:
- 1.5
-
isVisible
Determines whether this variable can be accessed from the givenStackFrame
. SeeStackFrame.visibleVariables()
for a complete description variable visibility in this interface.- Parameters:
frame
- the StackFrame querying visibility- Returns:
true
if this variable is visible;false
otherwise.- Throws:
IllegalArgumentException
- if the stack frame's method does not match this variable's method.
-
isArgument
boolean isArgument()Determines if this variable is an argument to its method.- Returns:
true
if this variable is an argument;false
otherwise.
-
equals
Compares the specified Object with this LocalVariable for equality.- Overrides:
equals
in classObject
- Parameters:
obj
- the reference object with which to compare.- Returns:
- true if the Object is a LocalVariable, if both LocalVariables
are contained in the same method (as determined by
Method.equals(java.lang.Object)
), and if both LocalVariables mirror the same declaration within that method - See Also:
Object.hashCode()
,HashMap
-
hashCode
int hashCode()Returns the hash code value for this LocalVariable.- Overrides:
hashCode
in classObject
- Returns:
- the integer hash code
- See Also:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-