我有带有 activeRecord 字段的 Java bean
private Boolean activeRecord;
@Override
public Boolean isActiveRecord() {
return activeRecord;
}
@Override
public void setActiveRecord(Boolean activeRecord) {
this.activeRecord = activeRecord;
}
当我在 列表中将 作为 Jasper Report 数据源发送时
List<Branch> dataList = new BranchLogic().selectAll();
JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(dataList);
我收到错误消息
为什么 Jasper 不将
isActiveRecord
识别为 getter 方法? 最佳答案
前缀 is...
可用于返回原始 boolean
的方法。但是,您的字段 activeRecord
是 Boolean
类型,它是一个对象(boolean
的包装类型),对于对象,您总是需要使用 get...
。
来自 JavaBeans specification ,8.3.2:
因此,您有两种可能的解决方法:
activeRecord
成为 boolean
并保留 getter isActiveRecord()
。如果 activeRecord
不能是 null
,这将是首选方法。 Boolean
,但将您的方法 isActiveRecord()
重命名为 getActiveRecord()
。您需要确保调用者正确处理 null
。 关于 boolean 字段的 Java Bean 规范,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39307379/