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