在下面的使用JDBC的示例中(虽然这个问题不是特定于JDBC):
Connection conn = null;
try
{
..... Do the normal JDBC thing here ....
}
catch(SQLException se)
{
if(conn != null)
{
conn.close();
}
}
如果我没有将conn
初始化为null
,那么编译器会抱怨在catch
块中我无法使用尚未初始化的引用。
Java默认情况下将对象引用初始化为null,那么为什么我需要将其显式初始化为null。如果编译器不喜欢开头为null的引用的原始值,为什么它甚至接受我的显式初始化?
注意:我使用Eclipse Luna
作为我的IDE。
答案 0 :(得分:8)
它只会在类范围内将变量初始化为null。您位于方法范围内,因此必须将变量显式初始化为null。
如果变量是在类级别定义的,那么它将被初始化为null。