!“门店”.equals(certificate.getType())
!certificate.getType().equals(“门店”)
两种写法的区别
这两种代码在功能上是等效的,它们都是检查 certificate 的类型是否不等于 “门店”。然而,它们只是读取的方式稍有不同。第一种是 “门店”.equals(certificate.getType()),而第二种是 certificate.getType().equals(“门店”)。
通常,为了避免空指针异常,我们会更倾向于第一种写法,即常量或已知非空字符串在前,因为如果我们调用 certificate.getType() 返回的是 null,那么第一种写法就会避免抛出空指针异常,而是返回 false。而第二种写法在 certificate.getType() 返回 null 的情况下会抛出空指针异常。
所以,从健壮性的角度考虑,第一种 “门店”.equals(certificate.getType()) 的写法更值得提倡。这样可以确保即使 certificate.getType() 返回的是 null,代码也不会抛出空指针异常。