Eclipse要求我初始化本地变量似乎是一个错误


private int getJobIndex() {
    int jobNum;
    boolean inputValid = false;
    while (!inputValid) {
        jobNum = getIntegerInput("Please select a job to work on: ");
        if (jobNum < 0 || jobNum >= game.getNumberOfJobs()) {
            System.out.println("Invalid selection. Please choose a valid job.");
        }
        else {
            inputValid = true;
        }
    }
    return jobNum;
}

这是一个理论上的问题,所以请忍受我。在上面的代码中,我要获取用户输入,以循环验证它并返回。上面编写的代码不会在Eclipse中编译,因为"局部变量Jobnum可能没有初始化"。Eclipse的建议是将初始声明更改为int jobNum = 0;。不过,这让我感到困扰,因为如果Jobnum在没有初始化的情况下超越了时循环,那将是不好的,并且设置为0可能会使该错误很难找到(尤其是在这里,因为0是有效的作业索引)。如果它是不专业的,我想事情会很快破裂,我会发现这个错误。现在,我可以将其初始化为-1,但是很容易想象所有INT都有效的类似情况。对于此示例来说,这并不重要,但是为了将来编写更好的代码...

因此,总而言之,我有两个问题:

  1. 为什么Eclipse将其迫使我?这似乎是一个相当沉重的编译器错误。
  2. 编码此编码的正确方法是什么,该方法不引入我可能会轻易误以为输入的默认值?

while (!inputValid) {不满足Java的可及性测试,或者其他。

因此,在这种情况下,Java需要错误。

相关内容

最新更新