Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 非工作if语句_Java_String_Comparison_Reference - Fatal编程技术网

Java 非工作if语句

Java 非工作if语句,java,string,comparison,reference,Java,String,Comparison,Reference,我有以下代码: 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( mai

我有以下代码:

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中,它显示了child_node_name在某个点上与library_visual_场景完全相同。如果第二个if语句不为true,则执行此操作

当子节点名称等于text时,执行第一个if语句。意思是我从来没有在祝酒词中看到过文字

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


我不知道这里发生了什么事。这可能是Android特有的东西吗?如果我在我的计算机上以纯Java的形式运行它,几乎相同的代码可以工作?

更改以下行以使用equals方法:


更改以下行以使用equals方法:

替换

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

这就是在java中比较字符串的方式比较引用,而不是内容。

替换

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


这就是在java中比较字符串的方式比较引用,而不是内容。

如果这不是java程序员新手最常见的错误,那么它一定很接近。Thanx!我看到您使用text.equalstring而不是String.equalstring。有首选方法吗?@Espen嗯,text.equalssome_变量可以保存,防止在某些_变量为null的情况下出现可能的NullPointerException。所以我认为这是最好的方法,以防您不能完全确定调用某些变量是否安全。equals@Espen更多关于text.equals的信息,如果这不是java程序员新手最常见的错误,那么它必须接近.Thanx!我看到您使用text.equalstring而不是String.equalstring。有首选方法吗?@Espen嗯,text.equalssome_变量可以保存,防止在某些_变量为null的情况下出现可能的NullPointerException。所以我认为这是最好的方法,以防您不能完全确定调用某些变量是否安全。equals@Espen更多关于text.equals的信息,请点击此处
child_node_name == "library_visual_scenes"
child_node_name == "#text"
"library_visual_scenes".equals(child_node_name);
"#text".equals(child_node_name);