我收到错误 Integer类型中的方法parseInt(String)不适用于参数(布尔值)
这是代码
} else if (Integer.parseInt(answerField.getText() == null)) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
}
我也尝试了这个,但它不起作用:
(Integer.parseInt(answerField.getText().equals("")))
&安培;
(Integer.parseInt(answerField.getText().length()) == 0)
我只想查看是否输入了任何内容,如果是,则显示JOptionPane。
编辑:var answerField是一个JTextField,用户输入数学问题的答案。所以ActionListener然后确定答案是否正确,因此parseInt(因为它是一个数学运算)
do {
checkButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (Integer.parseInt(answerField.getText()) == correctAnswer) {
count++;
JOptionPane.showMessageDialog(null, "Correct");
} else if (Integer.parseInt(answerField.getText().length()) == 0) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
} else {
count++;
JOptionPane.showMessageDialog(null, "Incorrect!");
System.exit(0);
}
}
});
} while (count < 11);
答案 0 :(得分:0)
让我们分析你的代码
(Integer.parseInt(answerField.getText() == null))
参数
answerField.getText() == null
返回一个布尔值,并且在Integer类中没有定义方法Integer.parseInt(bool)
。
看起来你想要这样做:
else if (someConditionHere) {
Integer.parseInt(answerField.getText());
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
}
答案 1 :(得分:0)
parse int方法中的所有值都返回一个布尔值,因为它们在两个值之间执行比较,导致true或false。您应该使用Boolean.parseBoolean()返回“true”或“false”字符串
答案 2 :(得分:0)
Integer.parseInt(answerField.getText() == null)
被评估为
Integer.parseInt("someTextext" == null)
然后
Integer.parseInt(true/false)
尝试解析布尔值,因为整数将导致错误
要检查您的字段是否为空,只需执行if(answerField.getText() == null)
然后如果不为null,您可以尝试按照您的方式将字段值解析为Integer。
答案 3 :(得分:0)
我不确定你为什么要调用Integer.parseInt,因为你的条件已经有了一个布尔表达式:
} else if (answerField.getText() == null) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
}
请注意,如果Java中的条件只能接受布尔表达式,并且您无法传入整数或其他任何您认为是 truthy 或 falsy 的其他内容(例如,与C或Javascript不同)。
答案 4 :(得分:0)
如果 all 你要做的是检查answerField
中是否包含一些字符串,那么你需要做的就是检查它是否为空或空。< / p>
if(!("".equals(answerField.getText()) || null == answerField.getText()) {
// other, non-integer-handling code here
}
你做 不 想要处理解析整数,如果有一个空字符串或它是null
,因为这可能导致{{1} }。