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
hashCode()
このスタック・トレース要素のハッシュ・コード値を返します。boolean
このスタック・トレース要素が表す実行ポイントを含むメソッドがネイティブ・メソッドの場合、trueを返します。toString()
このスタック・トレース要素の文字列表現を返します。
-
コンストラクタの詳細
-
StackTraceElement
指定された実行ポイントを表すスタック・トレース要素を作成します。 スタック・トレース要素のmodule name
とmodule version
はnull
になります。- パラメータ:
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
-declaringClass
がnull
またはmethodName
がnull
の場合- 導入されたバージョン:
- 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()
equals
はObjects.equals
のセマンティックスを持ちます。 -
hashCode
public int hashCode()このスタック・トレース要素のハッシュ・コード値を返します。
-