一个AbstractTableModel,使用getValueAt(),取得一个单元格的值,本想与另一个String比较,却发现结果一直是false如下:
System.out.println((String)cm.getValueAt(rowNum, 1).equals("家乐福"));其中cm是所创建的Model对象下面这个语句倒是可以输出"家乐福"的结果
System.out.println((String)cm.getValueAt(rowNum, 1));不知道为什么".equal()"失败查API文档,getValueAt()返回的是Object,但是强制转换为String应该没有问题啊奇怪...

解决方案 »

  1.   


    System.out.println(((String)cm.getValueAt(rowNum, 1)).trim().equals("家乐福"));
    这样试试!!
      

  2.   

    改成下面这样应该就可以了,因为object里面的equals和string的equals是不一样的,具体的楼主可以看看APISystem.out.println(cm.getValueAt(rowNum, 1).toString().equals("家乐福"));
      

  3.   

    trim()一下应该就得到你想要的了,曾经遇到过这样的问题
      

  4.   

    System.out.println((String)cm.getValueAt(rowNum, 1).trim().equals("家乐福"));
      

  5.   

    你少加括号了:
    System.out.println(((String)cm.getValueAt(rowNum, 1)).equals("家乐福"));
      

  6.   

    建议楼主这样写..你这样写会可能有NullPointException..System.out.println(("家乐福").equals((String)cm.getValueAt(rowNum, 1)));好像少加了括号哦.呵呵..总结下上面的..估计应该可以得到答案了!
      

  7.   

    11楼正解,equals前面最好不要是变量有可能空指针异常
      

  8.   


    谢谢提示.equals()前面不要放变量,又学了招
      

  9.   

    System.out.println(("家乐福").equals((String)cm.getValueAt(rowNum, 1)));
    这个写法很好,即不会出NullPointException..也不会向楼主一样因为括号少加而出错了.学习了 !
      

  10.   

    trim() 或者 toString()一下