这两天和同学写GUI程序,之前一直都是String类型不能直接用==比较内容,要用equals(),我也试过,确实要用equals(),才能比较内容是否相等,可是发生一个怪事
eg:
Label pro=new Label("hi");
if(pro.getText()=="hi")
{
.................
}
这样他居然能够比较相等?不用equals也可以比较字符串内容相等?!!1奇怪~逻辑居然是对的,这是为啥,请大侠指点一二
eg:
Label pro=new Label("hi");
if(pro.getText()=="hi")
{
.................
}
这样他居然能够比较相等?不用equals也可以比较字符串内容相等?!!1奇怪~逻辑居然是对的,这是为啥,请大侠指点一二
pro.getText()方法,它返回的是一个字符串值,就可以这样比较,建议你去看看String类的equals(),方法的底层代码,它覆盖了Object类的Equals()方法,你在看看Object 类的equals(),方法,它的底层实现其实就是用“==”,所以在一些地方equals()方法与“==”能混用,或者说能用“==”的地方就能用equals(),但用equals()的地方不一定能用“==”