Я мигрирую в java 9 из java 8. Я использовал отражение, чтобы выбрать метод 'getStackTraceElement (int)' из класса 'java.lang.Throwable', и я установил доступность "true".
программы хорошо работают для Java 8, но когда я перешел на Java 9, он начал сбой с ошибкой 'java.lang.NoSuchMethodException: java.lang.Throwable.getStackTraceElement (int).'
У меня есть код, который отлично работает в Java 8, как следующий частный статический метод 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");
}
}'