即使我确定变量“可能尚未初始化”

拉斐尔公羊

我在编译这段代码时遇到了Javac的麻烦:

public static int getYear() {
    Console input = System.console();
    Boolean gotYear = false;
    int year;

    String userInput = input.readLine();

    while (!gotYear) {
        try {
            year = Integer.parseInt(userInput);
            gotYear = true;
        } catch (Exception e) {
            System.out.print("Please insert a valid date. ");
            userInput = input.readLine();
        }
    }

    return year;
}

Javac给我的错误return year;是“变量'year'可能尚未初始化”。但是由于它在while循环中,所以我肯定知道它已经被初始化了。我问我的助教,他无法回答我为什么会这样。他的最佳猜测是Javac并不是解决这类问题的很好的编译器。

基本上,为什么会发生此错误?我知道我可以通过在进入while循环之前初始化年份来解决此问题,但是我想知道是否还有另一种方法可以实现我要实现的目标。

朱利安

您的year变量在try块中初始化。对我们来说很明显,只有输入确定后,它才会退出循环。但是编译器的规则比这更简单:由于初始化可能会被异常中断,因此它认为年份可能未初始化。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

即使我确定变量“可能尚未初始化”

来自分类Dev

变量可能尚未初始化错误

来自分类Dev

最终变量可能尚未初始化

来自分类Dev

变量“ snackbar”可能尚未初始化

来自分类Dev

变量文件可能尚未初始化

来自分类Dev

变量“ emergencyIntent”可能尚未初始化

来自分类Dev

变量索引可能尚未初始化

来自分类Dev

变量“ gestureDetector”可能尚未初始化

来自分类Dev

变量可能尚未初始化?错误

来自分类Dev

变量objectPO可能尚未初始化

来自分类Dev

IntelliJ 变量可能尚未初始化

来自分类Dev

变量 c 可能尚未初始化

来自分类Dev

java变量范围,变量可能尚未初始化

来自分类Dev

关于`变量(变量名)可能尚未初始化`

来自分类Dev

为什么不断告诉我“变量卡可能尚未初始化”

来自分类Dev

Java程序:变量和可能尚未初始化

来自分类Dev

Mockito @Before批注:变量可能尚未初始化

来自分类Dev

禁用警告变量可能尚未初始化?

来自分类Dev

匿名类中的“变量示例可能尚未初始化”

来自分类Dev

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

来自分类Dev

“变量可能尚未初始化”的设计原理是什么?

来自分类Dev

“变量可能尚未初始化”是什么意思?

来自分类Dev

变量可能尚未初始化...如何增加范围?

来自分类Dev

错误:变量c可能尚未初始化

来自分类Dev

Java:变量的捕获异常可能尚未初始化

来自分类Dev

局部变量 dMetres 可能尚未初始化

来自分类Dev

为什么我的开关块中出现“变量可能尚未初始化”的编译器错误?

来自分类Dev

“变量可能尚未初始化。” 声明的数组变量发生错误

来自分类Dev

缺少有关变量的警告,可能尚未初始化

Related 相关文章

热门标签

归档