为什么我的程序会跳过if语句?

时间:2015-07-16 09:04:51

标签: java if-statement

我试着以不同的方式编写我的程序,但我无法弄明白..即使条件得到验证,程序也只执行其他代码 请有人帮帮我 谢谢

这是我的代码:

table.addMouseListener(new MouseAdapter() {

    public void mouseClicked(MouseEvent e) {

        int row = table.getSelectedRow();
        int col = table.getSelectedColumn();
        String path=table.getValueAt(row, col).toString();
        String equipementMOID=txt.getText();

        if(table.isColumnSelected(4) ){
            if(table.getValueAt(row, 3).toString()=="UNIT" ){
                String equipementDate2=comboBox_10.getSelectedItem().toString();
                String xmlFile2=con.XMLSelection(equipementDate2);
                GetNode ne=new GetNode();
                try{
                    String equipementXml2=ne.nodeToString(xmlFile2, equipementMOID);
                    System.out.println(equipementXml2);
                    //GetNodeByPath node=new GetNodeByPath(equipementXml2,path);
                } 
                catch (SAXException | IOException | ParserConfigurationException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }    
            else{
                String equipementDate1=comboBox_9.getSelectedItem().toString();
                String xmlFile1=con.XMLSelection(equipementDate1);
                GetNode ne=new GetNode();
                try{
                    String equipementXml1=ne.nodeToString(xmlFile1, equipementMOID);
                    GetNodeByPath node=new GetNodeByPath(equipementXml1,path);
                } 
                catch (SAXException | IOException | ParserConfigurationException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }         
        }   
    }
});

2 个答案:

答案 0 :(得分:1)

使用string.equals(String other)函数来比较字符串,而不是==运算符。

该函数检查字符串的实际内容,==运算符检查对象的引用是否相等。  如果你真的想测试两个字符串是否具有相同的值,你应该使用.equals()

 if(table.isColumnSelected(4) ){
                if(table.getValueAt(row, 3).toString().equals("UNIT") ){

答案 1 :(得分:0)

请在if条件

中尝试此操作
table.getValueAt(row, 3).toString().equals("UNIT")

==实际检查object对象的引用(将其视为String存储的位置),而equals()检查value如果是String