-2

我收到错误 Java.lang.NullPointerException ..我是 java 初学者,请帮助解决这个问题.....我在 Netbeans 中运行此代码

if ((cmbDate.getSelectedItem().equals("")) &&  (cmbMonth.getSelectedItem().equals("")) && (cmbYear.getSelectedItem().equals(""))) {
           JOptionPane.showMessageDialog( this, "Please select DOB","Error", JOptionPane.ERROR_MESSAGE);
           return;
            }
4

3 回答 3

1

当您有静态内容和动态变量要使用 eqauls 进行测试时,请始终使用左侧的静态部分,例如

"".equals(cmbDate.getSelectedItem())

它将从cmbDate.getSelectedItem()null 的情况中解救出来。

还假设对象也可以为空

if ((cmbDate == null || "".equals(cmbDate.getSelectedItem())) ||  (cmbMonth ==null || "".equals(cmbMonth.getSelectedItem())) || (cmbYear ==null ||"".equals(cmbYear.getSelectedItem()))) {
    JOptionPane.showMessageDialog( this, "Please select DOB","Error", JOptionPane.ERROR_MESSAGE);
    return;
}
于 2013-08-27T04:05:00.413 回答
0

请确保任何此控件返回 null 项并验证控件本身。

 cmbDate.getSelectedItem() 
 cmbYear.getSelectedItem()
 cmbYear.getSelectedItem()

并更改如下代码。如果您得到任何空值,我们将得到验证,但您的期望输出会有所不同。

     if ((cmbDate.getSelectedItem() !=null && cmbDate.getSelectedItem().equals(""))                       
              &&  (cmbMonth.getSelectedItem() !=null &&cmbMonth.getSelectedItem().equals(""))
          && (cmbYear.getSelectedItem() !=null && cmbYear.getSelectedItem().equals(""))) {
               JOptionPane.showMessageDialog( this, "Please select DOB","Error",    JOptionPane.ERROR_MESSAGE);
             return;
       }
于 2013-08-27T04:05:15.563 回答
0
  1. cmb日期
  2. cmb月
  3. cmb年

以上任何一个都可以为空。在对它们执行操作之前,您需要检查它们是否为空。

于 2013-08-27T04:07:31.447 回答