任何人都可以告诉我验证'null'字符串值的更好方法是什么?为什么?
String user = userService.getUserName(accID);
1) if(user != null) {
..
}
2) if(null != user) {
..
}
答案 0 :(得分:2)
没有区别。第一个版本更常用。
答案 1 :(得分:2)
对于这种情况并不重要,只要第一种方法更常见。
然而,当将其直接喂入等于方法时,首选所谓的尤达条件。
例如:
if("".equals(string)){
}
优先
if(string.equals("")){
}
因为它避免了nullpointer异常
答案 2 :(得分:0)
第一种方法主要由开发人员使用。我不认为这有所不同。
答案 3 :(得分:0)
我见过这两种方法。有些人认为最好先给出你比较的价值。如果您有许多替代方案可以看到您首先要比较的价值,这可能会更好。
我个人使用第一种选择,因为这是我的习惯。
如果这是你的问题,我怀疑是否有任何性能差异。所有不同之处在于代码风格和可读性。
答案 4 :(得分:0)
由于它没有功能差异而且第一个更具可读性,所以你应该选择第一个。
答案 5 :(得分:0)
在这种情况下,这是一个品味问题。
在其他情况下,例如如果你要比较字符串文字/常量,我更喜欢这个:
if ("yourStringConstant".equals(yourVariable))
因为这也会处理yourVariable为null的情况。如果您以其他方式执行此操作,则会出现NullPointerException:
if (yourVariable.equals("yourStringConstant"))
答案 6 :(得分:0)
第二种方法来自C / C ++。当你在C中写if (user = null)
而不是if (user == null)
时,你会得到一个逻辑错误,但不是一个编译错误,这样的错误可能真的很难被发现。
但是如果您编写if(null = user)
而不是if(null == user)
,您将收到编译错误,因为您无法将变量分配给null
。这就是为什么经常在那里使用反转的参数顺序的原因。
然而在Java中,这没有多大意义,因为Java编译器不会采用if(user = null)
表达式,因此您可以使用任何方法。第一个更广泛但