2 回答

TA貢獻1852條經(jīng)驗 獲得超1個贊
我沒有使用過 Spring Batch,但查看FieldSet Interface 規(guī)范,似乎有一些替代方法可以實現(xiàn)您想要的目標。
然而, Spring?Batch 參考確實提到了一些容錯能力,特別是當值不存在時拋出異常。為了禁用此功能,您需要將 strict 設置為false
tokenizer.setStrict(false);
否則,您可以簡單地嘗試一些舊的時尚替代方案,例如不要嘗試將值直接讀入 an?int
,只需將其讀入 String ,然后在將其轉換為 String 之前驗證該 Stringint
String empNo = fieldSet.readString("EMPNO");
if ((empNo == null) || (empNo.equals(""))) {
? empNo = "0";
}
int i = Integer.valueOf(empNo);
如果字段不為空且不是字符串,您可能仍然會得到一個java.lang.NumberFormatException,所以就我個人而言,我會通過處理異常來解決問題:
int myEmp = 0;
try {
? myEmp = fieldSet.readInt("EMPNO");
} catch (NumberFormatException nfe) {
? myEmp = 0;
}
也許不是那么雄辯,但它會起作用并達到目的。
添加回答
舉報