Java 变量只能为null,以显示eclipse
我有一个这样的方法Java 变量只能为null,以显示eclipse,java,eclipse,Java,Eclipse,我有一个这样的方法 public ArrayList<T> GetDoctorDetail(String name) { if (name!=null || !name.isEmpty() || name!="") { //Statements } } public ArrayList GetDoctorDetail(字符串名) { if(name!=null | |!name.isEmpty()| | name!=“”) { //声明 }
public ArrayList<T> GetDoctorDetail(String name)
{
if (name!=null || !name.isEmpty() || name!="")
{
//Statements
}
}
public ArrayList GetDoctorDetail(字符串名)
{
if(name!=null | |!name.isEmpty()| | name!=“”)
{
//声明
}
}
但是在月食中!用黄线下划线显示名称
空指针访问:变量名只能在此位置为空
为什么??解决方案是什么。如果
name
为非null,则条件|
运算符根本不会计算第二个操作数。因此,可以计算第二个操作数的唯一情况是name
为null时,在这种情况下它将抛出
我猜你想要
if (name != null && !name.isEmpty())
{
// Use name
}
或者可能:
if (name == null || name.isEmpty())
{
// Show an error message
}
请注意,将字符串与
==
和进行比较=代码>几乎总是错误的,因为它比较引用。您通常会使用等于
。不仅如此,它在这里也毫无用处——如果它是空的,它只能等于“”,因此它的条件与第二个操作数完全相同。oR条件的第一部分只有在name=null时才会失败。因此,第二部分将抛出空指针异常
写入该条件的正确方法是
if (name!=null && (!name.isEmpty() || name!=""))
注意-如果您创建“肯定”检查,逻辑总是更容易理解:
尽量避免检查“负”状态的条件,如“不为空”和“不为空”。他们不过是脑筋急转弯;) 您还可以在isEmpty()检查“”时删除最后一个条件
if (name != null && !name.isEmpty()) {
// Now the name variable has valid content
}
if (name == null || name.isEmpty()) {
// Now name is either null or empty
} else {
// Now the name has valid content
}