Java If语句获得真值

Java If语句获得真值,java,Java,我的程序使用以下代码 String mobile=""; if(mobile!="") System.out.println("++++++"); System.out.println("------"); 但if语句总是为真。这怎么可能?如何更正代码使if条件为false?试试这种方法 if(!(mobile.equals(""))) ==和.equals之间存在差异 正如世界卫生组织所建议的那样 if(!("".equals(mobile))) 因为它可以将移动设备处理为null,您不

我的程序使用以下代码

String mobile="";
if(mobile!="")
System.out.println("++++++");
System.out.println("------");
但if语句总是为真。这怎么可能?如何更正代码使if条件为false?

试试这种方法

if(!(mobile.equals("")))
==和.equals之间存在差异 正如世界卫生组织所建议的那样

if(!("".equals(mobile)))

因为它可以将移动设备处理为null,您不能使用它!=在弦上。这仅比较字符串的引用。如果要比较字符串的内容,需要使用equals


你得到了什么输出?看起来您可能需要一些大括号,可能还需要一个else子句;但是,如果问题仍然存在,请先从平等开始,然后使用此修订的方法提出不同的问题。您必须在您给出的示例中看到移动!=这总是错误的。i、 e.您提供了自己的错误示例。很可能您遗漏了一些重要的细节。我建议使用.equalsmobile,因为它可以将移动作为null处理。@whoAmI正如您所建议的,我已经修改了我的回答。如果您不想在null上使用NPE,最好使用.equalsmobile。容忍null可以掩盖应用程序中更深层次的问题。Java中没有指针。我的朋友,你是对的。但这只是事实的一半。指针对用户不可用。但是Java使用指针进行内存分配。你明白我的意思吗?@chintan不,我不明白。JLS不讨论指针。还有一些Java虚拟机是用没有指针的语言编写的。因此,Java没有指针,Java/JVM实现不需要指针。NullPointerException只是一个名称很差的遗留版本。@user2864740我读过一些我不记得的地方。我可以得到这个密码。你能解释一下它是怎么工作的吗?对象p1、p2;p1=新对象;p2=p1;p1=零;
if(!("".equals(mobile)))