返回值分配问题(用于原始数据类型)

时间:2019-05-23 13:28:16

标签: java

当基本类型具有默认值时,为什么需要在下面的代码中定义结果变量。

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;
        }

    }

}

1 个答案:

答案 0 :(得分:5)

以下是JLS 4.12.5. Initial Values of Variables的摘录:

  

每个 class 变量, instance 变量或数组组件为   创建时用默认值初始化

但是在您的情况下,它是一个 local 变量,然后:

  

必须给定一个值显式一个局部变量(第14.4节,第14.14节)   在使用之前