在哪个版本的Java中,将false分配给整数会变得无效?

问题描述

我有一个看起来像Java 1.1 库的以下旧代码

int colon_index = false;

for(int i = 0; i < params_split.length; ++i) {
    int colon_index = params_split[i].indexOf(":");
    if (colon_index > 0) {
        // ...
    }
}

似乎正在将false分配给类型int的变量。这是反编译的代码,因此IntelliJ反编译器也可能犯了一个错误

我已经检查了旧版本的发行说明,但尚未发现此更改。

假设这在Java的历史记录中是正确的,该语法在哪个版本的Java中不再有效?

解决方法

您不能信任反编译的代码。最初是int colon_index = 0

查看此answer以获得更多详细信息。