Java中的每个类型在声明时都具有原始值。本文包含原始数据类型Primitive Data Types的说明。知道这一点,为什么Eclipse显示错误告诉我变量可能尚未初始化?如果我有例如
int x;
x++;
答案 0 :(得分:15)
从链接
局部变量略有不同;编译器永远不会为未初始化的局部变量分配默认值。如果无法初始化声明它的局部变量,请确保在尝试使用它之前为其赋值。访问未初始化的局部变量将导致编译时错误。
答案 1 :(得分:5)
来自Java Language Specification,Java SE 8 Edition,4.12.5 Initial Values of Variables:
局部变量(§14.4,§14.14)必须在使用前通过初始化(§14.4)或赋值(§15.26)显式赋予值,其方式可以使用明确规则进行验证赋值(§16(定义赋值))。
答案 2 :(得分:4)
本地变量未初始化。
这是一个局部变量:
void aaa() {
int x;
}
这是一个实例变量。这些会自动初始化:
class X {
int x;
}
答案 3 :(得分:1)
数据类型默认值(对于字段)
字节0
短0
int 0
长0L
浮动0.0f
双倍0.0d
char'u0000'
String(或任何对象)null
布尔值假
答案 4 :(得分:-1)
从您提供的原始数据类型链接: “局部变量略有不同;编译器永远不会为未初始化的局部变量赋予默认值。如果无法初始化声明它的局部变量,请确保在尝试使用它之前为其赋值。访问未初始化的本地变量变量将导致编译时错误“。
答案 5 :(得分:-4)
你看到的不是错误,而是你的日食偏好。您可以将其更改为忽略eclipse首选项中未初始化的变量。