我想在运行时查找 Java 文件中实例变量的行号。
到目前为止我的理解,它可以通过java反射来完成,但不知道该怎么做。
提前致谢
简短的回答:不可以。
如果你想得到any运行时的行号信息,您首先必须确保您的类已编译并保留行号信息。如果您不拥有这些类文件,则无法保证这一点。
其次,不清楚你想要什么:变量声明的行号或变量的初始化,或对变量的另一个赋值。如果它是声明(没有赋值),那么无论如何都不会保留行信息(我认为 - 尝试在没有赋值的变量声明上放置一个调试断点,您就会理解)。您可以在带有断点的调试器中观察到另外两种可能性,但无法以编程方式捕获特定语句。
最后,运行时将在堆栈跟踪中显示行号,但显然只有当您强制抛出异常或使用Thread.currentThread().getStackTrace()
,这意味着您必须访问并修改您想要测试的每个可能的行号的代码。
我想这个might使用一些自定义注释可以变得更容易一些,这些注释将(使用方面编程)在注释出现的任何地方插入代码以输出行号,但您仍然需要注释您感兴趣的任何行。
反射不会给你行号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)