所以这就是我的代码(当然,没有完成,因为我不想做任何其他的工作,直到我弄清楚为什么我得到错误)。它编译没有问题但是当我尝试运行它时,我的第一行得到 java.lang.NumberFormatException
,不确定为什么?
if (Integer.parseInt(subtotalTextField.getText()) <= 200)
{
discountTextField.setText("2");
}
else
{
}
答案 0 :(得分:4)
由于subtotalTextField.getText()
会返回无法解析为int
的内容,因此在异常消息中应显示传递给parseInt()
的值
答案 1 :(得分:0)
返回的内容可能不是字符串?不要链接它,检查null并执行
Object val = subtotalTextField.getText();
if (val != null)
String txt = val.toString();
答案 2 :(得分:0)
如上所述,在textfield中输入的文本无法解析为Integer。这意味着您的文本字段包含字符,即“2s”。
如果您想在每次用户输入无效的Integer时避免此错误,请使用try-catch子句将其包围。
try{
// Try to parse to Integer
}catch(NumberFormatException e) {
// Thing to do when a user enters non-valid Integer
}
答案 3 :(得分:0)
我可以考虑的subtotalTextField.getText()的可能值
subtotalTextField.getText() = null; // or
subtotalTextField.getText() = ""; // or
subtotalTextField.getText() = "Any non passable String"; // a ,b c .. 1a ,2a ... etc
如果您确定输入了用户,则值通过任何验证都是有效数字。从你的逻辑开始没问题。