当基本类型具有默认值时,为什么需要在下面的代码中定义结果变量。
public class DevideByZero {
public static void main(String[] args) {
System.out.println(devidebyzero());
}
public static double devidebyzero() {
double result;//why do i need to define result when primitive have default value
try{
System.out.println("inside try block");
return (double) (1/0);
}finally{
System.out.println("inside final");
return result;
}
}
}
答案 0 :(得分:5)
以下是JLS 4.12.5. Initial Values of Variables的摘录:
每个 class 变量, instance 变量或数组组件为 创建时用默认值初始化
但是在您的情况下,它是一个 local 变量,然后:
必须给定一个值显式一个局部变量(第14.4节,第14.14节) 在使用之前