我似乎找不到修复此错误的方法。错误说
不兼容的条件操作数类型int和boolean
for (int j = 0; j < 16; j++)
{
byte byte1 = method229(class32);
class32.aBooleanArray590[j] = (byte1 == 1 ? 1 : false);
}
如果你能告诉我如何解决这个问题,我将非常感激。
答案 0 :(得分:2)
好像你想要
(byte1 == 1 ? true : false)
您不能在同一条件运算符中组合不同类型(1
和false
)。
在您的特定情况下,完全使用条件运算符是多余的,以下就足够了:
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);