我没有发现这段代码中有任何错误,但是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);
}
然而,eclipse告诉我变量没有初始化
显示警告是因为在变量在try
中初始化之前可能引发异常。然后在中,当
变量保持未初始化时。
编译器不分析在具体情况下变量是否会初始化。它保证如果变量只在try中初始化,而不是在get中初始化,或者最后它将保证它们可能不会初始化。
在“明显”条件下进行类似的尝试,如if(1
顺便说一句,您的代码有错误,将被报告而不是您描述的错误,因为没有地方可以抛出
IOExctive
。
在输入任何try
块之前,必须初始化所有变量。Java编译器不知道在您的情况下,不可能导致异常。
所以从理论上讲,可能会有一个例外,让你的变量未初始化。这是不可接受的。这就是警告。
只需将变量初始化为零。
int min1 = 0;
float somefloat = 0f;
我对python相当陌生,我想知道局部变量是如何工作的。让我们从一个简单方法的示例开始: 让我们假设local_dict像一种常量变量一样使用。这里有一个问题:它是在每次调用do_sth()时创建的,还是创建一次并保存在do_sth()内部的某个地方?
问题内容: 我的Java程序中出现以下错误: Java变量未初始化错误…错误:变量nam和r未初始化位置类子级 但是并且已经初始化,但是我仍然遇到相同的错误。 问题答案: 不要获取 默认值 ,应在使用它们之前对其进行初始化,并使用main中的默认值进行初始化,这样就可以了。 顺便说一句,考虑为您的类和变量命名是有意义的。
问题内容: Java的设计者是否有任何理由认为不应为局部变量提供默认值?认真地讲,如果实例变量可以被赋予默认值,那为什么我们不能对局部变量做同样的事情呢? 问题答案: 声明局部变量主要是为了进行一些计算。因此,程序员决定设置变量的值,并且不应采用默认值。如果程序员错误地没有初始化局部变量并且使用默认值,则输出可能是一些意外值。因此,在使用局部变量的情况下,编译器将要求程序员在访问变量之前使用一些值
print语句会导致以下编译时错误, 局部变量f可能尚未初始化 如果Java中的原语已经有一个默认值(float=0.0f),为什么我需要定义一个呢? 所以,这是有效的 谢谢大家!
问题内容: UI类在View中,导入已完成,但是在最后一个表达式中我得到了错误。 我是Java的入门者,但我不明白为什么我不允许这样使用它。 问题答案: 如果要在Java方法中声明变量/对象,则需要对其进行初始化。 简单来说 在您的情况下,它是一个正在访问方法的对象,因此,如果不初始化它,就像 它会给你一个NULL指针异常。 希望能帮助到你。
我有以下Java代码: 但是,当我运行它时,它会抛出以下错误: 我在do之前初始化了变量。while 循环,并在 try. 中设置值。捕获循环。似乎尚未设置该变量。抱歉,如果这是一个相当基本的问题,但我似乎无法弄清楚。