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);