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

クラスStackTraceElement

java.lang.Object
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
    指定されたオブジェクトが、このインスタンスと同じ実行ポイントを表す、別のStackTraceElementインスタンスである場合、trueを返します。
    このスタック・トレース要素によって表される実行ポイントを含むクラスのクラス・ローダーの名前を返します。
    このスタック・トレース要素が表す実行ポイントを含むクラスの完全修飾名を返します。
    このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの名前を返します。
    int
    このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの行番号を返します。
    このスタック・トレース要素が表す実行ポイントを含むメソッドの名前を返します。
    このスタック・トレース要素が表す実行ポイントを含むモジュールのモジュール名を返します。
    このスタック・トレース要素によって表される実行ポイントを含むモジュールのモジュール・バージョンを返します。
    int
    このスタック・トレース要素のハッシュ・コード値を返します。
    boolean
    このスタック・トレース要素が表す実行ポイントを含むメソッドがネイティブ・メソッドの場合、trueを返します。
    このスタック・トレース要素の文字列表現を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • 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ファイル(「Java Virtual Machine仕様」4.7.7項に従ってください)のSourceFile属性に対応します。 システムによっては、名前が、ファイルではなくソース・コード単位を参照する場合もあります(ソース・リポジトリ内のエントリなど)。
      戻り値:
      このスタック・トレース要素が表す実行ポイントを含むファイルの名前、またはnull (この情報を使用できない場合)。
    • getLineNumber

      public int getLineNumber()
      このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの行番号を返します。 通常、これは関連するclassファイル(「Java Virtual Machine仕様」4.7.8項に従ってください)のLineNumberTable属性から導出されます。
      戻り値:
      このスタック・トレース要素が表す実行ポイントを含むソース行の行番号、または負の数値(この情報を使用できない場合)
    • getModuleName

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

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

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

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

      public String getMethodName()
      このスタック・トレース要素が表す実行ポイントを含むメソッドの名前を返します。 実行ポイントがインスタンスまたはクラスの初期化子に含まれている場合、「Java Virtual Machine仕様」のセクション3.9に示すように、このメソッドは適切な「特殊メソッド名」<init>または<clinit>を返します。
      戻り値:
      このスタック・トレース要素が表す実行ポイントを含むメソッドの名前。
    • 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つの異なる値を返すことがあります。実装では返された文字列の一部の要素を省略することがあります。

      戻り値:
      このオブジェクトの文字列表現
      関連項目:
    • 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を返す。
      関連項目:
    • hashCode

      public int hashCode()
      このスタック・トレース要素のハッシュ・コード値を返します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目: