我没有发现这段代码有任何错误,但是 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/