这是我的代码:
if (ChoixPortCom.equals(null) == true ) JOptionPane.showMessageDialog(null, "Choose Port COM");
我得到了着名的java.lang.NullPointerException
我的JCombobox填充如下: 第1 - > nothin / empty null no String nothing 第二 - > COM1 3nd - > COM2 ....
为什么"如果"条件不对?
答案 0 :(得分:2)
choixPortCom.equals(null)
永远不会成真。如果choixPortCom
不是null
,则表达式将按预期返回false。如果choixPortCom
null
,则表达式将抛出NullPointerException
,因为您试图在null
上调用方法;这就是你的情况。检查null
的适当方法是:
if (choixPortCom == null) // I've assumed a more common naming convention
Java 7中还有一个Objects
类,它有一些用于null
的有用方法 - 检查。例如,Objects.requireNonNull()
:
Objects.requireNonNull(choixPortCom, "input can't be null!")
答案 1 :(得分:1)
应该是
if (ChoixPortCom == null)
现在如果ChoixPortCom为null,它将抛出一个NullPointer,因为你试图在空引用上调用一个方法(等于)。
我喜欢将其视为最佳做法是始终使用括号:
if (ChoixPortCom == null) {
JOptionPane.showMessageDialog(null, "Choose Port COM");
}