我有一些字符串变量从调用函数getParameter()
获取值,其中一些变量可能是null
。
稍后,我将使用equals()
方法评估此变量。
我应该将所有String变量设置为空字符串(""
),如果它们是null
以避免任何问题吗?
答案 0 :(得分:13)
另一种方法是使用静态util方法进行比较。 Apache commons-lang StringUtils.equals(String,String)可能具有明确定义的空值行为。
// null safe compare
if (StringUtils.equals(variable,"hello")) {...}
// is "" or null
if (StringUtils.isEmpty(variable)) { ... }
// with static imports it's a bit nicer
if (isNotEmpty(var1) && isEmpty(var2)) { ... }
答案 1 :(得分:10)
你有三个选择 - 如果您所比较的项目也已知为空(例如常量),则首先使用该项目。
if ("hello".equals(variable)) { ... }
首先检查空值
if (variable != null && variable.equals("hello")) { ... }
最后,如果null和空字符串可以被认为是相同的下游,那么将字符串设置为空字符串。但是如果你希望以不同的方式处理null,那么就不能这样做了。