java中的__LINE__等价物?
2022-09-02 09:28:19
我正在寻找一种在输出消息中包含为编译时常量的方法。__LINE__
似乎存在各种解决方案,但正如JS中的__LINE__
和C#中的__LINE__
所建议的那样,存在很大的运行时损失。它们通常始终基于运行时对象 log4j。StackFrame
使用log4j根据需要启用/禁用的可能性也不是一种选择,因为通常当发生错误时,启用行号为时已晚,并且内联代码似乎不再有任何行号。.是否有可能:
- 在编译之前预处理java源文件,理想情况下是与Eclipse1集成的东西,因此它也可以在developpement平台上进行测试。
- 能够在加载时预处理类。然后,通过摊销,间接费用可以忽略不计。
1.实际上我确实使用了一个丑陋的黑客:在构建服务器上结帐后通过ANT技巧调用自定义预处理器