2

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 型の式は Boolean にボックス化されます

私はこれを考えすぎていますが、解決できません。

ご協力いただきありがとうございます。

4

3 に答える 3

3

何方をお探しですか...

showDetailGroup = Boolean.valueOf( (mainGroupInt.intValue() != 0 && subGroupInt.intValue() != 0) || 
                                   (mainGroupInt.intValue() != 0 && showDetailGroup.booleanValue()) )

そうでなければ、私はあなたの質問を理解できません。上記のコードはBoolean、式の値を表す を返しますboolean。Java Boolean.valueOf()およびBoolean.booleanValue()ドキュメントを参照してください。

于 2012-02-22T19:12:00.800 に答える
2

Boolean (大文字の B ) は、ボックス化を解除しないとブール式で使用できません。

警告を消したい場合は、booleanValue関数を呼び出して Boolean をプリミティブ型に変換します (これは、ボックス化解除の舞台裏で行われていることです)。

mainGroupInt.intValue() != 0 && showDetailGroup.booleanValue( )
于 2012-02-22T19:16:20.893 に答える
1

Boolean と Integer は、プリミティブ boolean と int のラッパー クラスです。関数への参照によって変数を渡す必要がある場合は、変数を boolean および int に変更し、後でラップする必要があります。

于 2012-02-22T19:31:30.853 に答える