Module  jdk.jdi
软件包  com.sun.jdi

Interface Method

    • 方法详细信息

      • returnTypeName

        String returnTypeName​()
        返回返回类型的文本表示形式,如该方法的声明所指定。

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

        结果
        一个包含返回类型名称的 String
      • argumentTypeNames

        List<String> argumentTypeNames​()
        返回一个包含此方法的每个形式参数类型的文本表示的列表。

        即使类型尚未创建或加载,此列表始终可用。

        结果
        一个ListString ,这个方法的每个参数的一个List元素。 每个元素表示在编译时指定的形式参数的类型。 如果使用省略号声明了形式参数,则将其表示为省略号之前的类型的数组。
      • argumentTypes

        List<Type> argumentTypes​()
                          throws ClassNotLoadedException
        返回一个包含此方法的每个形式参数类型的列表。

        注意:如果存在类型为引用类型(类,接口或数组)的任何参数,并且尚未由声明类型的类加载器(即declaringType() .classLoader() )创建或加载,则将抛出ClassNotLoadedException。 此外,引用类型可能已经加载但尚未准备好,在这种情况下,列表将被返回,但尝试对类型执行某些操作(例如, fields() )将抛出一个ClassNotPreparedException 使用ReferenceType.isPrepared()来确定是否准备了引用类型。

        结果
        返回一个ListType ,这个方法的每个参数的一个List元素。 每个元素表示在编译时指定的形式参数的类型。 如果使用省略号声明了形式参数,则将其表示为省略号之前的类型的数组。
        异常
        ClassNotLoadedException - 如果类型尚未通过适当的类加载器加载。
        另请参见:
        Type
      • isAbstract

        boolean isAbstract​()
        确定这个方法是否是抽象的。
        结果
        如果方法声明为abstract, true ; 否则为false
      • isDefault

        default boolean isDefault​()
        确定此方法是否为默认方法
        结果
        true如果方法声明为default; false否则。
        从以下版本开始:
        1.8
      • isSynchronized

        boolean isSynchronized​()
        确定此方法是否同步。
        结果
        true如果方法被声明为synchronized; false否则。
      • isNative

        boolean isNative​()
        确定此方法是否为本机。
        结果
        true如果方法被声明为native; 否则为false
      • isVarArgs

        boolean isVarArgs​()
        确定此方法是否接受可变数量的参数。
        结果
        true如果方法接受可变数量的参数,否则为 false
        从以下版本开始:
        1.5
      • isBridge

        boolean isBridge​()
        确定此方法是否为桥接方法。 桥接方法在The Java™ Language Specification中定义。
        结果
        true如果方法是桥接方法,否则为 false
        从以下版本开始:
        1.5
      • isConstructor

        boolean isConstructor​()
        确定这个方法是否是一个构造函数。
        结果
        true如果方法是一个构造函数; false否则。
      • isStaticInitializer

        boolean isStaticInitializer​()
        确定此方法是否为静态初始化程序。
        结果
        true如果方法是一个静态的初始化器; 否则为false
      • allLineLocations

        List<Location> allLineLocations​(String stratum,
                                        String sourceName)
                                 throws AbsentInformationException
        在此方法中为每个可执行源行返回一个包含Location对象的列表。

        每个位置将源行映射到一系列代码索引。 范围的开始可以通过Location.codeIndex()确定。 返回的列表按代码索引(从低到高)排序。

        如果编译器和/或VM将该行映射到两个或更多个不相交的代码索引范围,则返回的列表可能包含特定行号的多个位置。

        如果该方法是native或abstract,则返回一个空列表。

        返回的列表是指定的层次 (有关层的描述,请参阅Location )。

        参数
        stratum - 从 nullnull检索信息的 层次
        sourceName - 仅返回此源文件中的位置或 null返回位置。
        结果
        所有源代码行列表Location对象。
        异常
        AbsentInformationException - 如果此(非本地,非抽象)方法没有行号信息。 或者,如果SOURCENAME是非null和源名信息不存在。
        从以下版本开始:
        1.4
      • locationsOfLine

        List<Location> locationsOfLine​(String stratum,
                                       String sourceName,
                                       int lineNumber)
                                throws AbsentInformationException
        返回包含映射到给定行号和源名称的所有Location对象的列表。

        返回包含映射到给定行的每个Location的列表。 返回的列表将包含由编译器和/或VM分配给给定行的每个不相交的代码索引范围的位置。 每个返回的位置对应于此范围的开始。 如果指定的行号没有可执行代码,将返回一个空列表; 具体来说,本机和抽象方法将始终返回一个空列表。

        返回的列表是指定的层次 (有关层的描述,请参阅Location )。

        参数
        stratum - 用于比较行号和源名称的层次,或使用默认层次的层次
        sourceName - 包含行号的源名称,或null以匹配所有源名称
        lineNumber - 行号
        结果
        一个Location对象的列表,映射到给定的行号。
        异常
        AbsentInformationException - 如果此方法没有行号信息。 或者,如果SOURCENAME是非null和源名信息不存在。
        从以下版本开始:
        1.4
      • locationOfCodeIndex

        Location locationOfCodeIndex​(long codeIndex)
        为给定的代码索引返回一个Location
        结果
        Location对应于给定的代码索引,如果指定的代码索引不是此方法的有效代码索引,则为null(本机和抽象方法将始终返回null)。
      • variables

        List<LocalVariable> variables​()
                               throws AbsentInformationException
        返回包含此方法中声明的每个LocalVariable的列表。 该列表包括在方法中任何范围内声明的任何变量。 它可能包含在不相交的范围内声明的同名的多个变量。 参数被认为是局部变量,并将返回到列表中。 如果局部变量信息不可用,方法调用的实际参数的值可以通过使用方法StackFrame.getArgumentValues()
        结果
        LocalVariable对象的列表, 对象镜像目标VM中此方法中声明的局部变量。 如果没有局部变量,则返回零长度列表。
        异常
        AbsentInformationException - 如果此方法没有变量信息。 通常,局部变量信息不适用于本地或抽象方法(即,它们的参数名称信息不可用),因此它们将抛出该异常。
      • variablesByName

        List<LocalVariable> variablesByName​(String name)
                                     throws AbsentInformationException
        在此方法中返回包含给定名称的每个LocalVariable的列表。 如果在方法中的不相交的范围内使用相同的变量名,则可以返回多个变量。
        结果
        给定名称的LocalVariable对象的列表。 如果没有匹配的局部变量,则返回零长度列表。
        异常
        AbsentInformationException - 如果此方法没有变量信息。 通常,局部变量信息不适用于本地或抽象方法(即,它们的参数名称信息不可用),因此它们将抛出该异常。
      • bytecodes

        byte[] bytecodes​()
        返回一个包含此方法的字节码的数组。

        并非所有目标虚拟机都支持此操作。 使用VirtualMachine.canGetBytecodes()确定是否支持该操作。

        结果
        字节码阵列; 抽象和本机方法将返回一个零长度的数组。
        异常
        UnsupportedOperationException - 如果目标虚拟机不支持检索字节码。
      • location

        Location location​()
        返回此方法的Location ,如果有可执行代码与之相关联。
        Specified by:
        location在接口 Locatable
        结果
        这个镜像的Location ,如果这是一个抽象方法,则为null; 本机方法将返回其codeIndex为-1的Location对象。
      • equals

        boolean equals​(Object obj)
        将指定的Object与此方法进行比较以实现相等。
        重写:
        equalsObject
        参数
        obj - 与之比较的参考对象。
        结果
        如果Object是一个方法,并且如果两个镜像都是相同的方法(在同一个VM中的同一个类或接口中声明),则为true。
        另请参见:
        Object.hashCode()HashMap