android 里value==null和value.equals("")区别
这两种写法都不不出现提示但是这样写就出现提示了我知道null范围更大一点和equlas有区别,但是为什么上面那样的方式不显示错误提示,我想知道...
这两种写法都不不出现提示
但是这样写
就出现提示了
我知道null范围更大一点和equlas有区别,但是为什么上面那样的方式不显示错误提示,我想知道 展开
但是这样写
就出现提示了
我知道null范围更大一点和equlas有区别,但是为什么上面那样的方式不显示错误提示,我想知道 展开
3个回答
展开全部
如楼上所说比较String类型时用equals,
values == null表示对象是否为空,如上面代码可以明显看出这个对象不为空,所以为false
values == "" 在比较String时候,这种表示方法只有在他们所引用同一个对象时候才为true,上面代码为2个String对象即values和“”,所以也为false
另外android中推荐自带的String检查TextUtils.isEmpty(values);他即判断了空和是否euqals("")的情况。
望采纳 谢谢!
values == null表示对象是否为空,如上面代码可以明显看出这个对象不为空,所以为false
values == "" 在比较String时候,这种表示方法只有在他们所引用同一个对象时候才为true,上面代码为2个String对象即values和“”,所以也为false
另外android中推荐自带的String检查TextUtils.isEmpty(values);他即判断了空和是否euqals("")的情况。
望采纳 谢谢!
更多追问追答
追问
括号里明明是空的为什么会不为空呢,null 难道不是指空字符串吗
追答
null不是指空字符串,而是指这个对象是空的,对象为空和空字符串不是一个概念。
展开全部
嗯,楼上那个哥们举得例子不错,我总结一下
从java的存储结构上讲(android跟java是一样的),你可以将所有变量都看成是C中的指针,也就是说变量本身只代表一个地址而已,如果是==null,是判断对象是否引用了具体的地址,而==“”是判断对象引用的地址中所存储的值是否为“”
说白了null对象没有引用地址,而“”有引用地址但是内存中没有数据。
从java的存储结构上讲(android跟java是一样的),你可以将所有变量都看成是C中的指针,也就是说变量本身只代表一个地址而已,如果是==null,是判断对象是否引用了具体的地址,而==“”是判断对象引用的地址中所存储的值是否为“”
说白了null对象没有引用地址,而“”有引用地址但是内存中没有数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果两个String类型的变量,它们所引用同一个String对象(即指向同一块内存堆),则"=="比较的结果是true
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
以上代码段的打印结果是:
false
true
String s1 = new String("Hello");
String s2 = s1;
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
以上代码段的打印结果是:
true
true
判断String是否是某一个String时,用equals
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
以上代码段的打印结果是:
false
true
String s1 = new String("Hello");
String s2 = s1;
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
以上代码段的打印结果是:
true
true
判断String是否是某一个String时,用equals
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询