- 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)指定された実行ポイントを表すスタック・トレース要素を作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 booleanequals(Object obj)指定されたオブジェクトが、このインスタンスと同じ実行ポイントを表す、別のStackTraceElementインスタンスである場合、trueを返します。StringgetClassLoaderName()このスタック・トレース要素によって表される実行ポイントを含むクラスのクラス・ローダーの名前を返します。StringgetClassName()このスタック・トレース要素が表す実行ポイントを含むクラスの完全修飾名を返します。StringgetFileName()このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの名前を返します。intgetLineNumber()このスタック・トレース要素が表す実行ポイントを含むソース・ファイルの行番号を返します。StringgetMethodName()このスタック・トレース要素が表す実行ポイントを含むメソッドの名前を返します。StringgetModuleName()このスタック・トレース要素で表される実行ポイントを含むモジュールのモジュール名を返します。StringgetModuleVersion()このスタック・トレース要素で表される実行ポイントを含むモジュールのモジュール・バージョンを返します。inthashCode()このスタック・トレース要素のハッシュ・コード値を返します。booleanisNativeMethod()このスタック・トレース要素が表す実行ポイントを含むメソッドがネイティブ・メソッドの場合、trueを返します。StringtoString()このスタック・トレース要素の文字列表現を返します。
-
-
-
コンストラクタの詳細
-
StackTraceElement
public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
指定された実行ポイントを表すスタック・トレース要素を作成します。 スタック・トレース要素の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- スタック・トレースで表される実行ポイントを含むクラスのクラス・ローダーに名前が付けられている場合はクラス・ローダー名、それ以外の場合はnullmoduleName- スタック・トレースで表される実行ポイントを含むクラスが指定されたモジュール内にある場合はモジュール名、それ以外の場合はnullmoduleVersion- スタック・トレースで表される実行ポイントを含むクラスが、バージョンを持つ名前付きモジュール内にある場合のモジュール・バージョン。それ以外の場合はnulldeclaringClass- スタック・トレース要素が表す実行ポイントを含むクラスの完全修飾名methodName- スタック・トレース要素が表す実行ポイントを含むメソッドの名前fileName- スタック・トレース要素が表す実行ポイントを含むファイルの名前、またはnull(この情報を使用できない場合)lineNumber- このスタック・トレース要素が表す実行ポイントを含むソース行の行番号、または負の数値(この情報を使用できない場合)。 -2の値は、実行ポイントを含むメソッドがネイティブ・メソッドであることを示す- 例外:
NullPointerException-declaringClassがnullまたはmethodNameがnullの場合- 導入されたバージョン:
- 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メソッドは、等しい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()equalsはObjects.equalsのセマンティックスを持ちます。- オーバーライド:
equals、クラスObject- パラメータ:
obj- スタック・トレース要素と比較されるオブジェクト。- 戻り値:
- 指定されたオブジェクトが、このインスタンスと同じ実行ポイントを表す別の
StackTraceElementである場合、trueを返す。 - 関連項目:
Object.hashCode()、HashMap
-
hashCode
public int hashCode()
このスタック・トレース要素のハッシュ・コード値を返します。- オーバーライド:
hashCode、クラスObject- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-