モジュール java.base
パッケージ java.lang

クラスStackTraceElement

  • すべての実装されたインタフェース:
    Serializable


    public final class StackTraceElement
    extends Object
    implements Serializable
    スタック・トレース内の要素で、Throwable.getStackTrace()により返される値。 各要素は単一のスタック・フレームを表します。 スタックの先頭にあるスタック・フレームを除く、すべてのスタック・フレームは、メソッド呼出しを表します。 スタックの先頭のフレームは、スタック・トレースが生成された実行ポイントを表します。 通常、これは、スタック・トレースに対応するスロー可能オブジェクトが作成されたポイントになります。
    導入されたバージョン:
    1.4
    関連項目:
    直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      StackTraceElement​(String declaringClass, String methodName, String fileName, int lineNumber)
      指定された実行ポイントを表すスタック・トレース要素を作成します。
      StackTraceElement​(String classLoaderName, String moduleName, String moduleVersion, String declaringClass, String methodName, String fileName, int lineNumber)
      指定された実行ポイントを表すスタック・トレース要素を作成します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      boolean equals​(Object obj)
      指定されたオブジェクトが、このインスタンスと同じ実行ポイントを表す、別のStackTraceElementインスタンスである場合、trueを返します。
      String getClassLoaderName​()
      このスタック・トレース要素によって表される実行ポイントを含むクラスのクラス・ローダーの名前を返します。
      String getClassName​()
      このスタック・トレース要素が表す実行ポイントを含むクラスの完全修飾名を返します。
      String getFileName​()
      このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの名前を返します。
      int getLineNumber​()
      このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの行番号を返します。
      String getMethodName​()
      このスタック・トレース要素が表す実行ポイントを含むメソッドの名前を返します。
      String getModuleName​()
      このスタック・トレース要素が表す実行ポイントを含むモジュールのモジュール名を返します。
      String getModuleVersion​()
      このスタック・トレース要素によって表される実行ポイントを含むモジュールのモジュール・バージョンを返します。
      int hashCode​()
      このスタック・トレース要素のハッシュ・コード値を返します。
      boolean isNativeMethod​()
      このスタック・トレース要素が表す実行ポイントを含むメソッドがネイティブ・メソッドの場合、trueを返します。
      String toString​()
      このスタック・トレース要素の文字列表現を返します。
    • コンストラクタの詳細

      • StackTraceElement

        public StackTraceElement​(String declaringClass,
                                 String methodName,
                                 String fileName,
                                 int lineNumber)
        指定された実行ポイントを表すスタック・トレース要素を作成します。 スタック・トレース要素のmodule namemodule versionnullになります。
        パラメータ:
        declaringClass - スタック・トレース要素が表す実行ポイントを含むクラスの完全修飾名
        methodName - スタック・トレース要素が表す実行ポイントを含むメソッドの名前
        fileName - スタック・トレース要素が表す実行ポイントを含むファイルの名前、またはnull (この情報を使用できない場合)
        lineNumber - このスタック・トレース要素が表す実行ポイントを含むソース行の行番号、または負の数値(この情報を使用できない場合)。 -2の値は、実行ポイントを含むメソッドがネイティブ・メソッドであることを示す
        例外:
        NullPointerException - declaringClassまたはmethodNameがnullの場合
        導入されたバージョン:
        1.5
      • StackTraceElement

        public StackTraceElement​(String classLoaderName,
                                 String moduleName,
                                 String moduleVersion,
                                 String declaringClass,
                                 String methodName,
                                 String fileName,
                                 int lineNumber)
        指定された実行ポイントを表すスタック・トレース要素を作成します。
        パラメータ:
        classLoaderName - スタック・トレースによって表される実行ポイントを含むクラスのクラス・ローダーが指定されている場合は、クラス・ローダー名。そうでなければnull
        moduleName - スタック・トレースによって表される実行ポイントを含むクラスが名前付きモジュールにある場合、モジュール名。そうでなければnull
        moduleVersion - スタック・トレースによって表される実行ポイントを含むクラスがバージョンを有する名前付きモジュールにある場合、モジュール・バージョン。そうでなければnull
        declaringClass - スタック・トレース要素が表す実行ポイントを含むクラスの完全修飾名
        methodName - スタック・トレース要素が表す実行ポイントを含むメソッドの名前
        fileName - スタック・トレース要素が表す実行ポイントを含むファイルの名前、またはnull (この情報を使用できない場合)
        lineNumber - このスタック・トレース要素が表す実行ポイントを含むソース行の行番号、または負の数値(この情報を使用できない場合)。 -2の値は、実行ポイントを含むメソッドがネイティブ・メソッドであることを示す
        例外:
        NullPointerException - declaringClassnullまたはmethodNamenullの場合
        導入されたバージョン:
        9
    • メソッドの詳細

      • getFileName

        public String getFileName​()
        このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの名前を返します。 通常、これは、関連するclassファイルのSourceFile属性を表します(『Java仮想マシン仕様』のセクション4.7.7を参照)。 システムによっては、名前が、ファイルではなくソース・コード単位を参照する場合もあります(ソース・リポジトリ内のエントリなど)。
        戻り値:
        このスタック・トレース要素が表す実行ポイントを含むファイルの名前、またはnull (この情報を使用できない場合)。
      • getLineNumber

        public int getLineNumber​()
        このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの行番号を返します。 通常、この値は、関連するclassファイルのLineNumberTable属性から導き出されます(『Java仮想マシン仕様』のセクション4.7.8を参照)。
        戻り値:
        このスタック・トレース要素が表す実行ポイントを含むソース行の行番号、または負の数値(この情報を使用できない場合)
      • getModuleName

        public String getModuleName​()
        このスタック・トレース要素が表す実行ポイントを含むモジュールのモジュール名を返します。
        戻り値:
        このスタック・トレース要素によって表される実行ポイントを含むModuleのモジュール名。nullモジュール名が使用できない場合。
        導入されたバージョン:
        9
        関連項目:
        Module.getName()
      • getModuleVersion

        public String getModuleVersion​()
        このスタック・トレース要素によって表される実行ポイントを含むモジュールのモジュール・バージョンを返します。
        戻り値:
        このスタック・トレース要素によって表される実行ポイントを含むModuleのモジュール・バージョン。nullモジュールのバージョンが利用できない場合。
        導入されたバージョン:
        9
        関連項目:
        ModuleDescriptor.Version
      • getClassLoaderName

        public String getClassLoaderName​()
        このスタック・トレース要素によって表される実行ポイントを含むクラスのクラス・ローダーの名前を返します。
        戻り値:
        このスタック・トレース要素によって表される実行ポイントを含むクラスのクラス・ローダーの名前。nullクラス・ローダーが指定されていない場合。
        導入されたバージョン:
        9
        関連項目:
        ClassLoader.getName()
      • getClassName

        public String getClassName​()
        このスタック・トレース要素が表す実行ポイントを含むクラスの完全修飾名を返します。
        戻り値:
        このスタック・トレース要素が表す実行ポイントを含むClassの完全修飾名。
      • getMethodName

        public String getMethodName​()
        このスタック・トレース要素が表す実行ポイントを含むメソッドの名前を返します。 実行ポイントがインスタンスまたはクラス初期化子に含まれる場合、このメソッドは適切な特殊メソッド名 <init>または<clinit>を返します(『Java仮想マシン仕様』のセクション3.9を参照)。
        戻り値:
        このスタック・トレース要素が表す実行ポイントを含むメソッドの名前。
      • isNativeMethod

        public boolean isNativeMethod​()
        このスタック・トレース要素が表す実行ポイントを含むメソッドがネイティブ・メソッドの場合、trueを返します。
        戻り値:
        このスタック・トレース要素が表す実行ポイントを含むメソッドがネイティブ・メソッドの場合、trueを返す。
      • toString

        public String toString​()
        このスタック・トレース要素の文字列表現を返します。
        オーバーライド:
        toString、クラス: Object
        APIの注:
        この文字列の書式は実装によって異なります。一般的な例を、次に示します。
        • "com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)" - 以下の説明を参照してください。
        • "com.foo.loader/foo@9.0/com.foo.Main.run(Main.java)" - 行番号は使用できません。
        • "com.foo.loader/foo@9.0/com.foo.Main.run(Unknown Source)" - ファイル名も行番号も使用できません。
        • "com.foo.loader/foo@9.0/com.foo.Main.run(Native Method)" - 実行ポイントを含むメソッドは、ネイティブ・メソッドです。
        • "com.foo.loader//com.foo.bar.App.run(App.java:12)" - 実行ポイントのクラスは、クラス・ローダーcom.foo.loaderの名前のないモジュールで定義されます。
        • "acme@2.1/org.acme.Lib.test(Lib.java:80)" - 実行ポイントのクラスは、アプリケーション・クラス・ローダーなどのビルトイン・クラス・ローダーによってロードされるacmeモジュールで定義されます。
        • "MyClass.mash(MyClass.java:9)" - MyClassクラスがアプリケーション・クラス・パス上にあります。

        最初の例は、それぞれが"/"で区切られた3つの要素からなるスタック・トレース要素を示しています。ソース・ファイル名と実行ポイントを含むソース行の行番号が続きます。 最初の要素"com.foo.loader"は、クラス・ローダーの名前です。 2番目の要素"foo@9.0"はモジュール名とバージョンです。 3番目の要素は、実行ポイントを含むメソッドです。"com.foo.Main""は完全修飾クラス名で、"run"はメソッド名です。 "Main.java"はソース・ファイル名で、"101"は行番号です。

        クラスが「名前のないモジュール」で定義されている場合、2番目の要素は"com.foo.loader//com.foo.bar.App.run(App.java:12)"に示すように省略されます。

        クラス・ローダーが「ビルトイン・クラス・ローダー」であるか、または名前が付けられていない場合、最初の要素とそれに続く"/"は"acme@2.1/org.acme.Lib.test(Lib.java:80)"に示すように省略されます。 最初の要素が省略され、モジュールが名前のないモジュールである場合、2番目の要素とそれに続く"/"も"MyClass.mash(MyClass.java:9)"に示すように省略されます。

        toStringメソッドは、equalという2つのStackTraceElementインスタンス、たとえばコンストラクタで作成されたもの、ThrowableまたはStackWalker.StackFrameから取得されたものの2つの異なる値を返すことがあります。実装では返された文字列の一部の要素を省略することがあります。

        戻り値:
        このオブジェクトの文字列表現。
        関連項目:
        Throwable.printStackTrace()
      • equals

        public boolean equals​(Object obj)
        指定されたオブジェクトが、このインスタンスと同じ実行ポイントを表す、別のStackTraceElementインスタンスである場合、trueを返します。 2つのスタック・トレース要素aおよびbが等価になるのは、次の場合だけです。
        
             equals(a.getClassLoaderName(), b.getClassLoaderName()) &&
             equals(a.getModuleName(), b.getModuleName()) &&
             equals(a.getModuleVersion(), b.getModuleVersion()) &&
             equals(a.getClassName(), b.getClassName()) &&
             equals(a.getMethodName(), b.getMethodName())
             equals(a.getFileName(), b.getFileName()) &&
             a.getLineNumber() == b.getLineNumber()
        
         
        ここで、equalsObjects.equalsのセマンティックスを持ちます。
        オーバーライド:
        equals、クラス: Object
        パラメータ:
        obj - スタック・トレース要素と比較されるオブジェクト。
        戻り値:
        指定されたオブジェクトが、このインスタンスと同じ実行ポイントを表す別のStackTraceElementである場合、trueを返す。
        関連項目:
        Object.hashCode()HashMap