我遇到一个表达式会遇到困难,导致在iReport中显示或隐藏一个波段。
这些是我的变量:
Integer mainGroupInt = Integer.valueOf(5);
Integer subGroupInt = Integer.valueOf(5);
Boolean showDetailGroup = Boolean.valueOf(false);
结果必须是Boolean
,所以我尝试了以下内容:
mainGroupInt.intValue() != 0 && subGroupInt.intValue() != 0)) || (mainGroupInt.intValue() != 0 && showDetailGroup)
因此无效,我收到以下错误:
boolean类型的表达式被装入布尔值
我正在思考这个但我无法解决它。
感谢您的帮助。
答案 0 :(得分:2)
你在找......
showDetailGroup = Boolean.valueOf( (mainGroupInt.intValue() != 0 && subGroupInt.intValue() != 0) ||
(mainGroupInt.intValue() != 0 && showDetailGroup.booleanValue()) )
如果没有,我不明白你的问题。上面的代码返回表示Boolean
表达式值的boolean
。请参阅Java Boolean.valueOf()和Boolean.booleanValue()文档。
答案 1 :(得分:1)
布尔值(使用大写字母B)不能在布尔表达式中使用而不将其取消装箱。
如果你想要使警告静音,可以通过调用booleanValue
函数将布尔值转换为基本类型(这是在取消装箱的场景背后发生的事情):
mainGroupInt.intValue() != 0 && showDetailGroup.booleanValue( )
答案 2 :(得分:1)
Boolean和Integer是基元boolean和int的包装类。您应该将变量更改为boolean和int,如果必须通过引用函数传递它们,请将它们包装起来。