请看一下这段代码android示例:
private static final boolean aBoolean = false;
...
if(aBoolean){
//do something like logs
}
在这种情况下,由于aBoolean的值为false并且它在运行时无法更改,因此//在构建时是否会忽略某些类似于logs语句的内容,或者是否仍会构建它并且每次它都将进行评估if?
我正在尝试找到像预处理器#DEFINE #IF这样的行为...这样当我编码时我得到了我的日志,当我发布时,我切换了一个值,我的所有调试代码都被完全忽略了。 / p>
(我也想指出我的问题是面向Android的,所以如果Java和Android之间存在差异,请告诉我)
答案 0 :(得分:3)
完全可以找到检查变量以进行日志记录。即使代码没有得到优化,检查一个布尔条件几乎是一个无操作,你就是在过早优化。
但要回答你的问题,它可能会得到优化。
答案 1 :(得分:-2)
如果语句无法访问,这将始终给出编译时错误.....
例如。如果你使用return statemnt b4任何代码,这将给出编译时错误。
但是如果你使用这种类型的代码
如果(aBoolean){ //做一点事 }
java不会避免这些,或者不会被java删除........