String url2="jdbc:microsoft:sqlserver://QPSERVER:1433;DatabaseName=abc";
                    con2=DriverManager.getConnection(url2,usern,passw);                     
                    sql2 = con2.createStatement();                                    
            str2="select 表名,表中文名 from 表名参照 ";  //表名是英文名称,表中文名实汉字              
    rs2=sql2.executeQuery(str2);  
                    while (rs2.next())
                {
                 s1=rs2.getString(1);              System.out.println(s1+"+++++++++");
                 ss=rs2.getString(2);              System.out.println(ss.equals(null)"+haha++");
                 
                  for(int k=0;k<x;k++ )
               {
                  if(arry[k].equalsIgnoreCase(s1))
                  {
                  // if(sslength() <= 0)
                   {
                  // list1.addItem(s1);    
                  // System.out.println(s2.length()+"45645");
                    }
                  // else
                      {
                   list1.addItem(ss);
                       }
                   break;
                  }
               }
     }
为什么我加上ss.equals(null)程序就出错?如果我改为s1.equals(null)就没有错误?
是不是跟编码有关系?
这不是摆明欺负我这个新手么?

解决方案 »

  1.   

    另附报错信息:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at fram.itemStateChanged(fram.java:207)
    at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)
    at javax.swing.JComboBox.selectedItemChanged(Unknown Source)
    at javax.swing.JComboBox.contentsChanged(Unknown Source)
    at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source)
    at javax.swing.DefaultComboBoxModel.setSelectedItem(Unknown Source)
    at javax.swing.JComboBox.setSelectedItem(Unknown Source)
    at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
    at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    不胜感激,不胜感激啊!!!
      

  2.   

    ss获得的值中有有值的也有空值,有空值返回true不就ok么?是不是中文编码的原因?
      

  3.   

    ss应该为空的,你可以试打印ss看看是否为空?
    还有一个建议,你要获取数据时,最好不要这样写:
    s1=rs2.getString(1);              
    ss=rs2.getString(2);              
    改成s1=rs2.getString("字段名");
    因为你的1,2会去与你的sql="",这里相对应,字段一多,会乱的,有时会对应错了。导致有空类型出错。
      

  4.   

    s1=rs2.getString(1);              System.out.println(s1+"+++++++++"); 
    ss=rs2.getString(2);              System.out.println(ss.equals(null)"+haha++"); 
    改成 
    s1=rs2.getString(1);              System.out.println(s1+"+++++++++"); 
    ss=rs2.getString(2);              System.out.println(ss == null ? "" : ss+"+haha++"); 
      

  5.   

    判断字符串是否空值应当是
    if(string==null),而不是string.equals(null)
    7楼正解。