我有以下代码:
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”已明确初始化。可以将其视为编译器中的错误,但我知道要捕获所有情况在计算上是困难的(甚至是不可能的)。
有几种可能的解决方案:
这些解决方案都不是理想的,最好的是什么?还有其他解决方案吗?
避免“变量可能尚未初始化”的最佳实践?
为避免这种情况,您必须对其进行初始化,并且我不认为将其设置为null
会导致您付出任何代价或会导致任何不良后果的原因,但是肯定会阻止它引发并引发此异常。
并且请记住,在使用局部变量之前,应先使用value对其进行初始化。
因此,只需将其初始化为null
:
Required required= null ;
因此,您可以在if
语句中使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句