Java JCombobox和String.equals(null)
这是我的密码:Java JCombobox和String.equals(null),java,string,null,equals,jcombobox,Java,String,Null,Equals,Jcombobox,这是我的密码: if (ChoixPortCom.equals(null) == true ) JOptionPane.showMessageDialog(null, "Choose Port COM"); 我得到了著名的java.lang.NullPointerException 我的JCombobox是这样填充的: 1st->nothin/空null无字符串无 第二->通信1 3nd->COM2 为什么“如果”条件不正确?应该正确 if (ChoixPortCom == null) 现
if (ChoixPortCom.equals(null) == true ) JOptionPane.showMessageDialog(null, "Choose Port COM");
我得到了著名的java.lang.NullPointerException
我的JCombobox是这样填充的:
1st->nothin/空null无字符串无
第二->通信1
3nd->COM2
为什么“如果”条件不正确?应该正确
if (ChoixPortCom == null)
现在,如果ChoixPortCom为null,它将抛出一个null指针,因为您正试图对null引用调用一个方法(equals)
我认为最好的做法是始终使用括号:
if (ChoixPortCom == null) {
JOptionPane.showMessageDialog(null, "Choose Port COM");
}
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
检查方法。例如:
如果ChoixPortCom是一个字符串,你可以这样做吗?当然可以。字符串也是一个对象。是的,你是对的,它可以工作。我使用了String.equals(),因为当我与字符串比较时,我们告诉过我这一点。不要紧,谢谢。请遵循java代码惯例,变量名称以小写开头,并遵循驼峰式大小写样式。然后,比较将是字符串值,如stringObject.equals(“D3fman”);更好的是:“D3fman”。等于(stringObject);(现在,如果stringObject==null,则不会得到null指针)
Objects.requireNonNull(choixPortCom, "input can't be null!")