JCombobox和String.equals(null)

时间:2014-03-13 14:59:36

标签: java string null equals jcombobox

这是我的代码:

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     ....

为什么"如果"条件不对?

2 个答案:

答案 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");
}