gpt4 book ai didi

java - Java 中的 __LINE__ 等效项?

转载 作者:行者123 更新时间:2023-12-02 07:41:08 29 4
gpt4 key购买 nike

我正在寻找一种方法,将 __LINE__ 作为编译时常量包含在输出消息中。

似乎存在各种解决方案,但会带来很大的运行时间损失,如 __LINE__ in JS 中所建议的那样。和 __LINE__ in C# 。它们通常始终基于运行时对象 StackFrame 作为 log4j。

根据需要使用 log4j 启​​用/禁用的可能性也不是一个选项,因为通常当发生错误时,启用行号为时已晚,并且内联代码似乎没有任何行号更多的。。是否可以:

  1. 在编译之前对 java 源文件进行预处理,最好使用与 Eclipse1 集成的工具,这样也可以在开发平台上进行测试。
  2. 能够在加载时预处理类。通过摊销,间接费用可以忽略不计。

<子>1。实际上,我确实使用了一个丑陋的黑客:通过 ANT 技巧在构建服务器上结帐后调用自定义预处理器

最佳答案

在 C 中不可能获得编译时发生的 __LINE__ 效果。

您可以通过在运行时调用这样的函数来获取行号,

public static int lineNumber() {
return Thread.currentThread().getStackTrace()[2].getLineNumber();
}

关于java - Java 中的 __LINE__ 等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346391/

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