所以我购买了《Java for Dummies》第 4 版,我必须说这可能是我花 30 美元买的最值的一本书。我对编码并不陌生,如果我自己这么说的话,我实际上相当擅长。
但是,我遇到了一行让我有点困惑的代码:
public void setName(String n)
{
if(!n.equals(""))
{
name = n;
}
}
我的问题出现在第三行,if(!n.equals("")) 部分……我知道 if 循环是如何工作的(即:if(this == that){do stuff}),但我之前没有看到 !n.equals("") 设置。谁能给我解释一下?
PS:只是猜测一下。是否与:
public void setName(String n)
{
if(n != "")
{
name = n
}
}
我认为这只是一种确保如果用户不输入名称(即 myAccount.setName = ""; )它不会返回错误并像正常一样运行的方法,但我不是确定。
在此先感谢您的帮助!
编辑:改变了我的“myAccount.name = “”;”到“myAccount.setName =”“;”,很抱歉造成混淆。
谢谢:转至 Asaph,感谢您的回答!和Lucas Aardvark一样,他也回答了,但是Asaph先在他自己的回答中回答了我的验证评论,谢谢大家!
最佳答案
在java中,字符串是不可变的但不是内部的,所以 if(""==n) 对于另一个字符串可能为真,也可能不为真 其中“”.equals(n) 为真。
只是让你更加困惑,这是糟糕的代码,它会得到一个 NullPointerException 如果以 null 作为参数调用。应该写成".equals(n)
关于java - 一行java代码及其作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1501723/