安卓小白在模拟登录的时候,发现无论用户名和密码是否正确,结果都是“ 您的打开方式有误,请重新尝试!”。在检查的时候发现了一对发黄的’==’,鼠标搬到= =的位置,就出现了那句话,如图所示:
意思大概就是说,代码使用‘ ==’来比较字符串的值,而不是equals()
所以不太聪明的我立马将代码改成:
if(username.equals(us) && password.equals(pw)){
xxxx
}
运行一遍,O的K。
也就是说在Java中比较两个String对象的值,我们要用equals(),而不能用==(因为它比较的是两个对象的引用地址,即内存地址是否相同);而对于基本数据类型,如byte、short、int等,==比较的就是它们的值了。
(可以去查看java.lang.String中equals()的定义就会明白啦)