代码之家  ›  专栏  ›  技术社区  ›  Espen

非工作的if语句

  •  1
  • Espen  · 技术社区  · 14 年前

    我有这个代码:

    Node main_node = document.getDocumentElement();
    NodeList main_node_list = main_node.getChildNodes();
    for( int main_iterator = 0; main_iterator < main_node_list.getLength(); main_iterator++ ) {
        Node child_node = main_node_list.item( main_iterator );
        String child_node_name = child_node.getNodeName();
        if( child_node_name == "#text" ) continue;
        Toast.makeText( context, "\"" + child_node_name + "\"", Toast.LENGTH_SHORT ).show();
        if( child_node_name == "library_visual_scenes" ) {
        ...
        }
    }
    

    这不可能再清楚了,但是在两个if语句之间的toast中,它表明子节点的名称在某种程度上与“library-visual-scenes”完全相同。没有第二个if语句是真的。

    当子节点名等于“文本”时,第一个if语句将被执行。也就是说,我从来没有看到祝酒词中的“文字”。

    子节点名称是字符串对象。这是比较字符串和字符串的正确方法吗?

    我不知道这是怎么回事。这可能是一些Android特定的东西,因为如果我在我的计算机上运行纯Java,那么几乎相同的代码工作吗?

    2 回复  |  直到 14 年前
        1
  •  7
  •   Konstantin Burov    14 年前

    child_node_name == "library_visual_scenes"
    child_node_name == "#text"
    

    "library_visual_scenes".equals(child_node_name);
    "#text".equals(child_node_name);
    

        2
  •  2
  •   adamk    14 年前

    equals

    if( child_node_name.equals("#text") ) continue;
    

    if( child_node_name.equals("library_visual_scenes") ) {