小编Jav*_*ier的帖子

糟糕的java编译器优化?

我有这段代码:

private void prepareContent() {
    log.info("do something");
    // success?
    boolean suc = false;
    suc = suc || uncompressToContent("file.tar.gz");
    suc = suc || uncompressToContent("file.tgz");
    for (int i = 0; i <= 9; i++) {
        suc = suc || uncompressToContent("dir/" + i + ".tgz");
        suc = suc || uncompressToContent("dir/" + i + ".tar.gz");
    }
    if (!suc) {
        log.error("unable to do something");
    }
}
Run Code Online (Sandbox Code Playgroud)

该函数对"file.tar.gz"和file.tgz"返回false.

问题是对uncompressToContent("dir/1.tgz")的调用返回true并且代码停止执行.其余代码未执行.

我不确定这是否是编译器中的错误.你怎么看?

补充:我忘了提到我需要执行对uncompressToContent的所有调用,并使用尽可能少的指令检查是否有任何返回true.

java

1
推荐指数
2
解决办法
201
查看次数

标签 统计

java ×1