前两个示例之间的主要区别在于,在第一种情况下,条件是一个常数,而在第二种情况下,则不是。
例如,如果您更改
boolean i = false;为
final boolean i =false;,则由于我现在是一个常数,因此将得到相同的编译错误。
JLS
14.21中定义了不可达语句的规则。特别是
if对允许常量的
if(DEBUG)结构进行了特殊处理
DEBUG。
至于
do / while,里面的语句将被执行一次,所以没有问题。
有关常量的更多详细信息,请参见此相关文章。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)