将字符串设置为“”或将其保留为空?

时间:2009-10-07 12:21:26

标签: java string null initialization

我有一些字符串变量从调用函数getParameter()获取值,其中一些变量可能是null

稍后,我将使用equals()方法评估此变量。 我应该将所有String变量设置为空字符串(""),如果它们是null以避免任何问题吗?

2 个答案:

答案 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,那么就不能这样做了。