一个简单问题

duzhonghua 2008-04-30 03:01:50




public class MainFrame {
public static void main(String[] agrs) {
String xx = "asdaf";
String aa = null ;
if(xx.equals(aa)) {
System.out.println("null");
} else {
System.out.print(xx);
}
}
}


这样用字符串跟null比较会出错吗, 会有什么严重问题吗??
...全文
116 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_p 2008-04-30
  • 打赏
  • 举报
回复
应该没什么影响吧!
duzhonghua 2008-04-30
  • 打赏
  • 举报
回复
每人一分,呵呵/

duzhonghua 2008-04-30
  • 打赏
  • 举报
回复
我当然自己先试过了,我看看有没有什么异常的隐患!!!!!

比如5楼所说的异常,呵呵,

学习!!!!!!!!
blliy117 2008-04-30
  • 打赏
  • 举报
回复
PS;用逻辑号

== !=,
blliy117 2008-04-30
  • 打赏
  • 举报
回复
判断NULL表示对象的指向,而不必用equals
南南北北 2008-04-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 java2000_net 的回复:]
equals 会先判断传入的类型是不是相同
null 不是 String 类型
所以返回 false
[/Quote]

人得学习啊。
a_nuo 2008-04-30
  • 打赏
  • 举报
回复
5楼说的不错
KKK2007 2008-04-30
  • 打赏
  • 举报
回复
不会出错的
云上飞翔 2008-04-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 duzhonghua 的帖子:]
Java code



public class MainFrame {
public static void main(String[] agrs) {
String xx = "asdaf";
String aa = null ;
if(xx.equals(aa)) {
System.out.println("null");
} else {
System.out.print(xx);
}
}
}




这样用字符串跟null比较会出错吗, 会有什么严重问题吗??
[/Quote]
答:楼主真正想问的其实是:
[color=#FF0000"asdaf".equals(null)[/color] 有没有什么严重问题。
这个问题等价于:null instanceof String 有没有什么严重问题。
当然:没有问题。结果都是false

goosman 2008-04-30
  • 打赏
  • 举报
回复
学习。

xx.equals(aa);//貌似学习点在于:xx不可以为空,不然有空指针错误。至于aa,是否为空并不影响编译。
a_nuo 2008-04-30
  • 打赏
  • 举报
回复
不会有什么问题的,你的判断xx.equals(aa)只是说xx是否为空(null)
并没有什么错误
老紫竹 2008-04-30
  • 打赏
  • 举报
回复
equals 会先判断传入的类型是不是相同
null 不是 String 类型
所以返回 false
xinyan0321 2008-04-30
  • 打赏
  • 举报
回复
判断是否为null 用 == null 比较好
guohaijiao 2008-04-30
  • 打赏
  • 举报
回复
确实没有什么实际意义
lifanfly 2008-04-30
  • 打赏
  • 举报
回复
xx.equals(aa)你这个方法只会返回true或者false,
当正确判断一个字符串是否为空应该这样:
if(xx != null && !xx.equals(""))
haoxiongok 2008-04-30
  • 打赏
  • 举报
回复
就是flase,没别的
alexice 2008-04-30
  • 打赏
  • 举报
回复
没有什么实际意义,如果xx是null的话没有equals()方法,直接报错了,判断是否为null直接用 xx==null就好了
lwxaty 2008-04-30
  • 打赏
  • 举报
回复
public class MainFrame {
public static void main(String[] agrs) {
String xx = "asdaf";
String aa = null ;
if(xx.equals(aa)) {
System.out.println("null");
} else {
System.out.print(xx);
}
}
}
没问题

如果改成
public class MainFrame {
public static void main(String[] agrs) {
String xx = "asdaf";
String aa = null ;
if(aa.equals(xx)) {
System.out.println("null");
} else {
System.out.print(xx);
}
}
}
就会报空指针异常,所以用equals的时候要注意前面的字符串是不是NULL了
Fenglee2008 2008-04-30
  • 打赏
  • 举报
回复
三思而后问!呵呵
waitgod 2008-04-30
  • 打赏
  • 举报
回复
没有严重的问题
正常处理
加载更多回复(2)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧