gpt4 book ai didi

java - 发布时不编译代码块?

转载 作者:行者123 更新时间:2023-12-01 17:06:09 24 4
gpt4 key购买 nike

我有很多行只是用于调试和帮助程序。有没有一种方法可以标记这些,以便它们在发布项目时不会编译,但在 Eclipse 中运行/调试我的程序时仍然可以使用?更好的方法是将某个字段标记为仅调试,并在发布时完全丢弃与该字段相关的所有内容。

我知道在使用此类字段并在代码的关键部分中使用此类字段时可能会遇到麻烦。但我经常发现自己初始化了很多调试字段,然后将它们注释掉,如果我不注释掉它们,就会导致错误。

那么有什么方法可以更好、更有效地处理这个问题吗?

最佳答案

将代码放入引用另一个类中的 final static boolean 常量的 if 语句中。 Java 编译器不会编译类似于 if (DEBUG)if 语句,该语句实际上表示 if (false) (因为 DEBUG 为 false)。

public class Debug {
public final static boolean DEBUG = true; // or false
}

public class X {
public m() {
if (Debug.DEBUG) {
// Do some timing or displaying mouse positions, or whatever.
}
}
}

如果您想验证它是否有效,可以使用 javap 反汇编器:如果 DEBUG 常量为 false,则编译器不会生成代码,但如果 DEBUG是 true 就会的。

如需进一步引用,Java Language Specification (链接)有一个关于条件编译的部分,“示例 13.4.9-2”。这解释了我上面描述的内容。

关于java - 发布时不编译代码块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462354/

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