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

Interface Method

    • 方法详细信息

      • returnTypeName

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

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

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

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

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

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

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

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

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

        boolean isAbstract()
        确定此方法是否为抽象方法。
        结果
        true如果方法被声明为abstract; 否则为false
      • isDefault

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

        boolean isSynchronized()
        确定此方法是否已同步。
        结果
        true如果声明方法同步; 否则为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已将该行映射到两个或更多个不相交的代码索引范围,则返回的列表可包含特定行号的多个位置。

        如果方法是本机方法或抽象方法,则返回空列表。

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

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

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

        返回包含映射到给定行的每个Location的列表。 返回的列表将包含编译器和/或VM已分配给给定行的每个不相交的代码索引范围的位置。 每个返回的位置对应于此范围的开头。 如果指定的行号没有可执行代码,则返回空列表; 特别是,native和abstract方法总是返回一个空列表。

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

        参数
        stratum - 用于比较行号和源名称的层,或null用于使用默认层
        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; native方法将返回codeIndex为-1的Location对象。
      • equals

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