Java:局部变量已初始化,仍然出现错误

标签 java variables warnings local

我没有发现这段代码有任何错误,但是 Eclipse 告诉我变量没有初始化。这只是一个警告,但编译后也不起作用。我根本找不到错误,而且这段代码是 100% 正确的。请注意,此代码的结构无法轻易更改,因为下面提供的代码经过简化,因此您无需阅读太多内容;-)

int min1; float somefloat;
try {
    //setting values for min and somefloat
    min1 = 1;
    somefloat = 0.92f;
} catch (IOException ioe) {
    System.err.println("Read Exception");
} 
while (true){
    //warning: variables min1 and somefloat may not be initialized.
    float value1 = (1023 - min1) * somefloat;
    System.out.println("Value: " + value1);
}

最佳答案

您必须在所有变量进入任何 try block 之前初始化它们。 Java 编译器不知道在您的情况下,无法引发异常。

所以从理论上讲,可能在某个地方会出现异常,导致变量未初始化。这是 Not Acceptable 。因此发出警告。

只需将变量初始化为零即可。

int min1 = 0;
float somefloat = 0f;

关于Java:局部变量已初始化,仍然出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14831974/

相关文章:

c++ - 指向非指针变量结构的指针。这些变量,堆或堆栈在哪里?

r - 创建一个新列来指示每种独特动物的可变数量

java - 类型安全: Unchecked cast from Integer to T

java - Java 中数组的不常见语法

java - TrustManager 和 KeyManager 之间的区别

linux - 无法从 Bash 中的命令填充变量

c++ - 如果..否则警告 "not all control paths return a value"

java - 未经检查的 Actor : Map Output is firing unchecked cast warning

java - 如何在java中运行ffmpeg终端(mac)命令

java - doNothing.When for private void 方法本身正在调用方法