在Java中查找调用Method
精简版: 背景:
因此,如果第一个参数为null,那么NPE可能读取arg1不能为null(MyClass:myMethod(Object,Integer,String) 我已经研究了如何获取调用类,我可以通过Spring LocalVariableTableParameterNameDiscoverer(或通过Paranamer库)获取参数名称.我无法弄清楚的唯一部分是如何获得Method本身. 我知道您可以使用堆栈跟踪来获取方法名称,但如果重写该方法,则无效.有没有办法(即使是内部的com.sun类)来获得实际的堆栈?或者,我可以获取调用方法的行号,那么有没有办法找到从Class对象中检索的Method的行号? 最佳答案
Thread.getStackTrace()为您提供当前的堆栈跟踪.从那里你可以得到类名和方法名(即使方法被覆盖,你会在那里看到确切的类),并通过反射获得方法.
但是imo – 这很奇怪而且不需要.关于它的事情 – 你提供的消息大多已经存在于堆栈跟踪中,如果Preconditions调用失败将会生成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |