0

クラスのハッシュコードをカスタマイズしたい。私の問題は、JVMのデフォルトのStackTraceElementクラスの代わりに、この新しいカスタマイズされたクラスをどのように使用するかです。 StackTraceElement

4

2 に答える 2

2

StackTraceElement クラスを拡張してカスタマイズしたい

StackTraceElementfinal拡張できないため、拡張できません。

(何らかの理由で) スタック トレースの出力方法をカスタマイズしたい場合は、 を受け取り、Throwableさまざまなメソッドを使用しStackTraceElementて独自のレイアウトを作成するユーティリティ メソッドを実装できます。

public static void printCustomizedTrace(Throwable t) {
   for(StackTraceElement e : t.getStackTrace()) {
      System.err.println(" => " + e.getFileName() + ":" + e.getLineNumber());
   }
}

委任を使用して のリストを作成し、クラスにCustomStackTraceElements追加のロジック ( different などhashmap())を実装することもできます。CustomStackTraceElement

public static List<CustomStackTraceElement> getCustomizedStackTrace(Throwable t) {
   List<CustomStackTraceElement> result = new ArrayList<>();

   for(StackTraceElement e : t.getStackTrace()) {
      result.add(new CustomStackTraceElement(e));
   }

   return result;
}
于 2013-01-21T12:27:44.997 に答える
0

StackTraceElement は最終クラスです。最終クラスは延長できません。

これとこれを見

于 2013-01-21T12:34:32.827 に答える