小编rap*_*pes的帖子

"变量可能尚未初始化",即使我确定它是

我在编译这段代码时遇到了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;
}
Run Code Online (Sandbox Code Playgroud)

Javac在线上给出了return year;"变量'年'可能尚未初始化' 的错误".但由于它在一个while循环中,我确信它已经被初始化了.我向TA询问了这个问题,他无法回答我为什么会这样.他最好的猜测是,Javac并不是一个非常好的编译器,可以解决这种问题.

基本上,为什么会发生这种错误?我知道我可以通过在进入while循环之前初始化年来修复它,但我想知道是否有另一种方法来实现我想要实现的目标.

java javac try-catch

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

javac ×1

try-catch ×1