Java Integer类型中的parseInt(String)方法不适用于参数(布尔值)
我得到一个错误,类型Integer中的方法parseInt(String)不适用于参数(布尔值) 这是密码Java Integer类型中的parseInt(String)方法不适用于参数(布尔值),java,Java,我得到一个错误,类型Integer中的方法parseInt(String)不适用于参数(布尔值) 这是密码 } else if (Integer.parseInt(answerField.getText() == null)) { JOptionPane.showMessageDialog(null, "You did not enter an answer!"); } 我也尝试过这个,但不起作用: (Integer.pa
} else if (Integer.parseInt(answerField.getText() == null)) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
}
我也尝试过这个,但不起作用:
(Integer.parseInt(answerField.getText().equals("")))
&
我只想检查一下是否没有输入任何内容,如果输入了,则显示一个JOptionPane
编辑:var answerField是一个JTextField,用户在其中输入数学问题的答案。因此,ActionListener然后确定答案是否正确,从而确定parseInt(因为它是一个数学运算)
do{
checkButton.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
if(Integer.parseInt(answerField.getText())==correctAnswer){
计数++;
showMessageDialog(null,“Correct”);
}else if(Integer.parseInt(answerField.getText().length())==0){
showMessageDialog(null,“您没有输入答案!”);
}否则{
计数++;
showMessageDialog(null,“不正确!”);
系统出口(0);
}
}
});
}而(计数<11);
让我们分析一下您的代码
(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!");
}
parse int方法中的所有值都返回布尔值,因为它们在两个值之间执行比较,结果为true或false。您应该使用Boolean.parseBoolean()返回“true”或“false”字符串
整数。parseInt(answerField.getText()==null)
的计算结果为
Integer.parseInt(“someTextext”==null)
Integer.parseInt(true/false)
尝试将布尔值解析为整数将导致错误
要检查您的字段是否为null,请仅在(answerField.getText()==null)
如果不为null,则可以尝试将字段值解析为整数。我不确定您为什么要调用Integer.parseInt,因为您的条件中已经有一个布尔表达式:
} else if (answerField.getText() == null) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
}
请注意,如果Java中的条件只能接受布尔表达式,而您不能传入整数或任何您认为是truthy或falsy的东西(例如,与C或Javascript不同)。如果您只想检查应答字段中是否包含字符串,然后,您需要做的就是检查它是否为null或空
if(!("".equals(answerField.getText()) || null == answerField.getText()) {
// other, non-integer-handling code here
}
如果存在空字符串或
null
,则不希望处理对整数的解析,因为这可能会导致NullPointerException
将布尔表达式传递给parseInt(),该表达式需要字符串。不要试图把每件事都放在一条线上。检查字符串是否为空/null,然后对其进行分析(如果需要对其进行分析)。但是考虑到您所说的,您只需要if(answerField.getText().isEmpty())
*为什么要使用Integer.parseInt()??为了检查是否有文本,您需要使用这个`if(answerField.getText()==null | | | answerField.getText().equals(“”))注意,如果answerField是JTextField或JTextArea,它的getText()方法将永远不会返回null。我对Java不太熟悉,但我知道在进行类型转换时会使用强制转换语法,这对你的情况可能有帮助。。
} else if (answerField.getText() == null) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
}
if(!("".equals(answerField.getText()) || null == answerField.getText()) {
// other, non-integer-handling code here
}