【发布时间】:2016-05-12 00:11:44
【问题描述】:
我正在尝试创建一个递归方法(函数)。此方法正在处理另一个类的对象,该类的每个实例都有 3 个整数字段。 (整数 var1、var2、var3;)。我想知道是否存在“变量可能尚未初始化”的异常或错误,因此在这种情况下该方法将停止。起初,我以为它会抛出 nullPointerException,因为它是一个对象,但展开是自动进行的。有什么解决办法吗? (我知道这是一个编译错误...)
【问题讨论】:
-
你的问题真的没有意义。字段默认初始化为 null(如果它们是引用类型);所以你不应该从你描述的内容中得到编译错误。 (变量可能未初始化的编译错误仅适用于局部变量和最终字段。)您可以发布您的实际代码吗?
-
一个简单的例子:class test{ public static void main(String args[]){ Integer x; System.out.println(x); } } 类测试{ public static void main(String args[]){ Integer x = null; System.out.println(x); } } 输出 1:test.java:5: 错误:变量 x 可能没有被初始化 System.out.println(x); ^ 1 错误输出 2:null
-
我认为他遇到了编译器错误,因为他传入的参数未初始化,并且他试图通过 try/catch 绕过该编译器错误。
-
@JAAAY:您可以并且应该编辑您的问题。
-
@ruakh 你说字段默认初始化为null,这也是我相信的。但是为什么我提到的两个例子不同呢?
标签: java recursion exception-handling try-catch