首页 > 解决方案 > 返回值分配问题(对于原始数据类型)

问题描述

当原语具有默认值时,为什么我需要在下面的代码中定义结果变量。

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

    }

}

标签: java

解决方案


这是JLS 4.12.5 的摘录。变量的初始值

每个变量、实例变量或数组组件在创建时都使用默认值进行初始化

但在你的情况下,它是一个局部变量,然后:

局部变量(第 14.4 节、第 14.14 节)必须在使用前显式赋值


推荐阅读