Vaadin Flow 24:数据库Integer值(0/1)转网格Yes/No列渲染问题
解决Vaadin Grid中Integer类型值转"Yes/No"显示的问题
报错原因很明确:你用了三元运算符,但SJRolesQA.getIsAncillary()返回的是Integer类型,而三元运算符的条件部分需要boolean值,Java无法自动把Integer转成boolean,所以报错。
给你几种可行的修改方案:
- 直接判断值是否等于1(如果确定返回值不会为null):
Grid.Column<SJRolesQA> isAncillaryColumn = grid.addColumn(role -> role.getIsAncillary() == 1 ? "Yes" : "No");
- 考虑null值的情况,避免空指针异常:
Grid.Column<SJRolesQA> isAncillaryColumn = grid.addColumn(role -> { Integer ancillaryValue = role.getIsAncillary(); return ancillaryValue != null && ancillaryValue == 1 ? "Yes" : "No"; });
- 用
Objects.equals简化空值判断:
import java.util.Objects; // ... Grid.Column<SJRolesQA> isAncillaryColumn = grid.addColumn(role -> Objects.equals(role.getIsAncillary(), 1) ? "Yes" : "No");
内容的提问来源于stack exchange,提问作者clickguy
相关产品推荐
相关产品推荐

