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 回答