gpt4 book ai didi

java - 迁移到 Java 9 时,反射 API 没有抛出此类方法异常

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:19:46 25 4
gpt4 key购买 nike

我正在从 Java 8 迁移到 Java 9我正在使用反射从类“java.lang.Throwable”中获取方法“getStackTraceElement(int)”我将辅助功能设置为“真”。

程序适用于 Java 8但是当我迁移到 java 9 时,它开始因错误而失败 'java.lang.NoSuchMethodException: java.lang.Throwable.getStackTraceElement(int) 。 '

我的代码在 Java 8 中运行良好,如下所示私有(private)静态方法 m;

'public static void main(String args[])
{
try
{
System.out.println("here1");
//next line throws error
m = Throwable.class.getDeclaredMethod("getStackTraceElement",int.class);
m.setAccessible(true);
System.out.println("here2");
} catch (Exception e) {

//logger.warn(e.getLocalizedMessage(), e);
System.out.println("==>"+e.getLocalizedMessage);
System.out.println("==>"+e.getName);
System.out.println("==>"+e.getStackTraceElement);
System.out.println("here3");
}
}'

最佳答案

他们在 Java 9 中引入了一个专门用于此目的的类,称为 StackWalker

https://docs.oracle.com/javase/9/docs/api/java/lang/StackWalker.html

关于java - 迁移到 Java 9 时,反射 API 没有抛出此类方法异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com