gpt4 book ai didi

java - 避免 "variable might not have been initialized"的最佳实践

转载 作者:搜寻专家 更新时间:2023-10-31 20:10:39 26 4
gpt4 key购买 nike

我有以下代码:

    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. 使用锁的时间更长,或者使用锁两次

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

最佳答案

best practice for avoiding “variable might not have been initialized”?

好吧,为了避免它,你必须初始化它,我认为将它设置为 null 不会让你付出任何代价,或者会给你带来任何不好的后果,但它肯定会阻止它造成并引发此异常。

请记住,局部变量应该在使用前用值初始化。

因此只需将其初始化为 null 即可:

Required required= null ;

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

关于java - 避免 "variable might not have been initialized"的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com