TextField中的值抛出java.lang.NumberFormatException错误

时间:2012-12-01 02:11:22

标签: java if-statement parseint java.lang.class

所以这就是我的代码(当然,没有完成,因为我不想做任何其他的工作,直到我弄清楚为什么我得到错误)。它编译没有问题但是当我尝试运行它时,我的第一行得到 java.lang.NumberFormatException ,不确定为什么?

 if (Integer.parseInt(subtotalTextField.getText()) <= 200)
 {
    discountTextField.setText("2");
 }
    else
 {
 }

4 个答案:

答案 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

如果您确定输入了用户,则值通过任何验证都是有效数字。从你的逻辑开始没问题。