java - 仅检索表视图行的非空值
问题描述
我只想将表视图的非空值行保存在我的数据库中。问题TableDowntime.getItems()
在于它检索所有元素,甚至是具有非选定值的行,这会导致 NullPointerException 问题
这是我的控制器
private void BtnSaveAction(ActionEvent event) {
ObservableList<DowntimeDetail> list = TableDowntime.getItems();//we gotta retrieve only rows with non blank cells of the table
ArrayList<DowntimeDetail> arraylist = new ArrayList<>();
int i = 0;
String mat = Tx_Matricule.getText();
for (DowntimeDetail downtimeDetail : list) {
if (downtimeDetail.getTypeDT().getSelectionModel().getSelectedItem().toString() != null && downtimeDetail.getDownTime().getText() != null && downtimeDetail.getInterventionTime().getText() != null) {
if (downtimeDetail.getComment().getText() != null) {
downtimeDetail.setTypeDtStr(downtimeDetail.getTypeDT().getSelectionModel().getSelectedItem().toString());//get Downtime problem type from tableView
downtimeDetail.setDtInt(Integer.parseInt(downtimeDetail.getDownTime().getText()));//get Downtime from table view
downtimeDetail.setItInt(Integer.parseInt(downtimeDetail.getInterventionTime().getText()));//get intervention time from table view
downtimeDetail.setCommentStr(downtimeDetail.getComment().getText());//get comment from table view
downtimeDetail.setIdDTP(GetData.getIdDTProblem(downtimeDetail));//set id downtime problem out of downtime problem type
downtimeDetail.setLqc(mat);//set lqc mat
}else {
downtimeDetail.setTypeDtStr(downtimeDetail.getTypeDT().getSelectionModel().getSelectedItem().toString());//get Downtime problem type from tableView
downtimeDetail.setDtInt(Integer.parseInt(downtimeDetail.getDownTime().getText()));//get Downtime from table view
downtimeDetail.setItInt(Integer.parseInt(downtimeDetail.getInterventionTime().getText()));//get intervention time from table view
downtimeDetail.setCommentStr("");//get comment from table view
downtimeDetail.setIdDTP(GetData.getIdDTProblem(downtimeDetail));//set id downtime problem out of downtime problem type
downtimeDetail.setLqc(mat);//set lqc mat
}
}
if (downtimeDetail.getTypeDtStr() != null || (downtimeDetail.getDtInt() > 0) || (downtimeDetail.getItInt() > 0)) {
arraylist.add(downtimeDetail);
}else {
LOutput.setStyle("-fx-text-fill:Red");
LOutput.setText("You must fill all the fields of your desired inputs");
}
}
downtimeDetail.setDowntimes(arraylist);
int result = GetData.saveDowntimes(downtimeDetail);
if (result > 0) {
LOutput.setStyle("-fx-text-fill:Green");
LOutput.setText(result + " Items were successfully updated");
Btn_Save.setDisable(true);
} else {
LOutput.setStyle("-fx-text-fill:Red");
LOutput.setText("Error during the update of scrap correction");
Btn_Save.setDisable(true);
}
}
或者你有什么其他建议吗?
解决方案
听起来很愚蠢,但我在“for”子句之后尝试了这个解决方案
if ((downtimeDetail.getTypeDT().getSelectionModel().getSelectedItem() != null) && (downtimeDetail.getDownTime().getText() != null) && (downtimeDetail.getInterventionTime().getText() != null))
推荐阅读
- python - python selenium如何让python拿下记事本
- azure - 如何使用 terraform 启用 azure vm 应用程序洞察监控代理
- powerbi-embedded - power bi rest api的授权令牌用于android应用程序?
- javascript - 从源数字数组中提取随机数的最佳方法是什么,直到源数组中没有唯一值?
- python - 如何获取python中所有文件的大小
- python - 如何从 sqlalchemy 中的方言特定类型获取通用数据类型?
- excel - Excel VBA 解析 XML 字符串按名称和返回属性获取所有节点
- ios - 在 TableView [Swift] 中调用 DidSelect 方法后滚动后重新加载/重用错误的单元格
- algorithm - 算法:淘汰不再有机会赢得比赛的玩家
- elasticsearch - 如何使用偏移+限制> 1000的ES查询