模块  jdk.jdi
软件包  com.sun.jdi

Interface LocalVariable

  • All Superinterfaces:
    Comparable<LocalVariable>Mirror

    public interface LocalVariableextends Mirror, Comparable<LocalVariable>
    目标VM中的本地变量。 方法声明的每个变量都有自己的LocalVariable对象。 在不同范围内声明的同名变量具有不同的LocalVariable对象。 LocalVariables可以单独用于检索有关其声明的静态信息,也可以与StackFrame结合使用来设置和获取值。
    从以下版本开始:
    1.3
    另请参见:
    StackFrame方法
    • 方法详细信息

      • name

        String name()
        获取局部变量的名称。
        结果
        包含名称的字符串。
      • typeName

        String typeName()
        返回此变量类型的文本表示形式。 其中type是此局部变量声明中指定的类型。

        即使尚未创建或加载类型,此类型名称也始终可用。

        结果
        表示此局部变量类型的String。
      • type

        Type type()   throws ClassNotLoadedException
        返回此变量的类型。 其中type是此局部变量声明中指定的类型。

        注意:如果此变量的类型是引用类型(类,接口或数组),并且尚未由封闭类的类加载器创建或加载,则将抛出ClassNotLoadedException。 此外,引用类型可能已加载但尚未准备好,在这种情况下将返回类型,但尝试对返回的类型执行某些操作(例如fields() )将抛出ClassNotPreparedException 使用ReferenceType.isPrepared()确定是否准备了引用类型。

        结果
        这个局部变量的Type
        异常
        ClassNotLoadedException - 如果尚未通过适当的类加载器加载类型。
        另请参见:
        TypeField.type() - for usage examples
      • signature

        String signature()
        获取局部变量的JNI签名。
        结果
        包含签名的字符串。
        另请参见:
        Type Signatures
      • genericSignature

        String genericSignature()
        获取此变量的通用签名(如果有)。 通用签名在The Java™ Virtual Machine Specification中描述。
        结果
        包含通用签名的字符串,如果没有通用签名, null
        从以下版本开始:
        1.5
      • isVisible

        boolean isVisible​(StackFrame frame)
        确定是否可以从给定的StackFrame访问此变量。 有关此接口中的完整描述变量可见性,请参见StackFrame.visibleVariables()
        参数
        frame - StackFrame查询可见性
        结果
        true如果此变量可见; 否则为false
        异常
        IllegalArgumentException - 如果堆栈帧的方法与此变量的方法不匹配。
      • isArgument

        boolean isArgument()
        确定此变量是否是其方法的参数。
        结果
        true如果此变量是参数; 否则为false
      • equals

        boolean equals​(Object obj)
        将指定的Object与此LocalVariable进行相等性比较。
        重写:
        equals在类 Object
        参数
        obj - 要与之比较的引用对象。
        结果
        如果Object是LocalVariable,则为true;如果两个LocalVariables包含在同一方法中(由 Method.equals(java.lang.Object)确定),并且两个LocalVariables在该方法中镜像相同的声明
        另请参见:
        Object.hashCode()HashMap