Java不兼容的条件操作数类型int和boolean

时间:2014-05-30 02:43:08

标签: java eclipse

我似乎找不到修复此错误的方法。错误说

  

不兼容的条件操作数类型int和boolean

for (int j = 0; j < 16; j++)
{
        byte byte1 = method229(class32);
        class32.aBooleanArray590[j] = (byte1 == 1 ? 1 : false);
}

如果你能告诉我如何解决这个问题,我将非常感激。

3 个答案:

答案 0 :(得分:2)

好像你想要

(byte1 == 1 ? true : false)

您不能在同一条件运算符中组合不同类型(1false)。

在您的特定情况下,完全使用条件运算符是多余的,以下就足够了:

    class32.aBooleanArray590[j] = (byte1 == 1);

==的结果是一个布尔值,可以分配给数组的一个元素(我假设aBooleanArray590实际上是一个布尔数组而不是其他东西)。 ==表达式周围的括号是可选的,但我更喜欢使用它们以提高可读性。

答案 1 :(得分:1)

for (int j = 0; j < 16; j++)
{
        byte byte1 = method229(class32);
        class32.aBooleanArray590[j] = (byte1 == 1 ? true : false);
}

这应解决问题。

答案 2 :(得分:0)

您似乎尝试使用1代替true。如果是这种情况,您可以像这样修复它。

class32.aBooleanArray590[j] = (byte1 == 1 ? true : false);

但是,如果这是逻辑,您应该能够完全跳过?:

class32.aBooleanArray590[j] = (byte1 == 1);

另一方面,如果class32.aBooleanArray590[j]保持整数,则需要执行此操作。

class32.aBooleanArray590[j] = (byte1 == 1 ? 1 : 0);