gpt4 book ai didi

Java环境依赖编译

转载 作者:行者123 更新时间:2023-11-30 04:39:53 25 4
gpt4 key购买 nike

我在这里看到了答案,您可以在Java中使用final static const变量来防止代码段被编译。我对这种方法的担忧是我很健忘。 :-( 在 checkin 代码之前我可能会忘记将变量设置回 false,这可能会对项目产生负面影响。

在C/C++中,您可以指定可用于控制代码编译的环境宏。例如:

#if defined(_PROFILE)
Time startTime;
#endif

... run some code ...

#if defined(_PROFILE)
Time endTime;
std::cout << "Code took " << endTime - startTime << " seconds\n";
#endif

因此,只有在有人专门定义了 _PROFILE 宏时才会编译分析测试代码,该宏可以作为编译器命令行上的选项传递,并且不会有意外 checkin 的风险。

有没有办法用Java来模仿这个?

最佳答案

您可以使用运行时属性。由于 Java 是动态编译的,因此具有大致相同的效果。

 static final boolean PROFILE = Boolean.getBoolean("VictimZero.PROFILE");

long startTime;
if (PROFILE)
startTime = System.nanoTime();

... run some code ...

if (PROFILE) {
long enTime = System.nanoTime();
System.out.printf("Code took %.3f seconds%n", (endTime - startTime)/1e9);
}

你可以使用稍微hacky的

 static final boolean VICTIM_ZERO = 
System.getProperty("user.name").equals("VictimZero");

关于Java环境依赖编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568931/

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