作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是我的表达式代码:
($F{Personel_ODEME}.equals(Boolean.TRUE)) ? "PAID" : "NO PAID"
如果人员已付款,她/他的 Jasper 税务报告将显示为PAID
,否则为NO PAID
。在DB中,这个字段是Boolean类型,但是表达式返回的是String类型。所以我得到了一个 Cannot cast from String to Boolean
错误。
最佳答案
问题源于您的测试 $F{Personel_ODEME}.equals(Boolean.TRUE)
,Jasper 认为它是 String
到 Boolean
比较,不喜欢。要解决这个问题,试试这个:
($F{Personel_ODEME}.equals(Boolean.TRUE.toString())) ? "PAID" : "NO PAID"
这将导致 String
与 String
比较。
值得注意的是,在 Java 中,"true".equals(Boolean.TRUE)
会导致 false。
编辑:
这似乎是一个 Jasper 'PrintWhen' 表达式,它允许您确定是否打印单元格的内容。它期望 Boolean.TRUE
或 Boolean.FALSE
作为其返回值。当您返回“PAID”时,Jasper 会尝试将该 String
评估为 Boolean
,但它无法做到这一点,因此它会抛出异常。
关于java - Jasper 报告中的表达式值 : "Cannot cast from String to Boolean" error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1148986/
我是一名优秀的程序员,十分优秀!