避免“变量可能尚未初始化”的最佳实践

香兰

我有以下代码:

    boolean needToAddToMap = false;
    Required required;
    synchronized(requiredMap)
    {
        if (requiredMap.containsKey(userId))
        {
            required = parserSetAndActionsMap.get(userId);
        }
        else
        {
            logger.warning("userId not found in map, adding now.");
            needToAddToMap = true;
        }
    }
    if (needToAddToMap)
    {
        required = addNewRequired(userId);
    }

后来,我使用了required,但是得到了一个错误,即使“ required”已明确初始化。可以将其视为编译器中的错误,但我知道要捕获所有情况在计算上是困难的(甚至是不可能的)。

有几种可能的解决方案:

  1. 禁止警告(不确定是否可能)
  2. 初始化为空
  3. 使用锁的时间更长,或使用两次

这些解决方案都不是理想的,最好的是什么?还有其他解决方案吗?

ŝ

避免“变量可能尚未初始化”的最佳实践?

为避免这种情况,您必须对其进行初始化,并且我不认为将其设置为null会导致您付出任何代价或会导致任何不良后果的原因,但是肯定会阻止它引发并引发此异常。

并且请记住,在使用局部变量之前,应先使用value对其进行初始化。

因此,只需将其初始化为null

Required required= null ;

因此,您可以在if语句中使用它

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章