Java:可能尚未初始化变量的Catch异常

时间:2016-05-12 00:11:45

标签: java recursion exception-handling try-catch

我正在尝试创建一个递归方法(函数)。此方法处理另一个类的对象,其中每个实例都有3个Integer字段。 (整数var1,var2,var3;)。我想知道是否存在“变量可能尚未初始化”的异常或错误,因此在这种情况下该方法将停止。起初,我认为它会抛出nullPointerException,因为它是一个对象,但是解包会自动生效。有什么解决方案吗? (我知道这是一个编译错误......)

2 个答案:

答案 0 :(得分:0)

您可以在该方法的外部范围内使用虚拟/临时值初始化所有三个变量,然后使用传递给方法的任何内容覆盖它们。例如:

Integer myVar1 = 0;
Integer myVar2 = 0;
Integer myVar3 = 0;
public static void yourMethod(Integer var1, Integer var2, Integer var3) {
  try {
    myVar1 = var1;
    myVar2 = var2;
    myVar3 = var3;
  ... your code
  catch(NullPointerException ex) {
     // handling error code
  }
}

答案 1 :(得分:0)

一种方法可能是在使用它之前检查它是否是类类型的实例。请考虑以下事项:

Integer x = null;
Integer y = new Integer(0);

if(x instanceof Integer)
    System.out.println("x is initialized.");
else
    System.out.println("x is NOT initialized.");

if(y instanceof Integer)
    System.out.println("y is initialized.");
else
    System.out.println("y is NOT initialized.");

输出结果为:

x未初始化。

y已初始化。