我想创建一个递归方法(函数)。此方法处理另一个类的对象,其中每个类的实例都有3个Integer字段。 (整数var1,var2,var3;)。我想知道是否有“变量可能未被初始化”的异常或错误,所以在这种情况下,该方法将停止。起初,我认为它会抛出nullPointerException,因为它是一个对象,但解包自动工作。有没有解决方法? (我知道这是一个编译错误...)Java:变量的捕捉异常可能没有被初始化
0
A
回答
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被初始化。
0
你可以在该方法的外部范围内用dummy/temporary值初始化所有三个变量,然后用任何传入你方法的值来覆盖它们。例如:
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. Java变量可能未被初始化
- 2. Java变量可能没有被初始化?
- 3. 变量potas可能没有初始化
- 4. Android的 - 局部变量TST可能没有被初始化
- 5. 本地变量可能没有被初始化的问题?
- 6. 变量可能未被初始化?
- 7. 变量可能未被初始化
- 8. 一些变量可能没有被初始化?为什么?
- 9. 变量可能没有被初始化(边缘权重图)
- 10. 呼叫变量,但它可能没有被初始化
- 11. 变量“studentNumber”和“passWord”可能没有被初始化?
- 12. 局部变量GCD可能没有被初始化
- 13. {DCC Warning} W1036变量'$ frame'可能没有被初始化?
- 14. 局部变量n可能没有被初始化
- 15. 错误:局部变量罐可能没有被初始化
- 16. Java - 变量可能未初始化
- 17. 为什么Java说我的变量在初始化时没有被初始化?
- 18. Valriable可能没有被初始化?
- 19. 有没有解决局部变量的方式可能没有被初始化
- 20. Log4j没有捕捉异常
- 21. PHPUnit没有捕捉异常
- 22. java捕捉异常
- 23. Java中的变量可能未被初始化错误
- 24. 无法编译Java错误变量可能未被初始化
- 25. Java错误变量可能未被初始化
- 26. 如何捕捉异常在静态初始化块抛出
- 27. 捕捉异常而没有捕获块
- 28. 捕获异常而初始化静态最终变量
- 29. 是否有可能开始..救援不捕捉异常?
- 30. 初始化向量异常
你的问题没有意义。字段默认初始化为空(如果它们是引用类型的话);所以你不应该从你所描述的那里得到一个编译错误。 (变量可能未被初始化的编译错误只适用于本地变量和最终字段。)你能发布你的实际代码吗? – ruakh
一个简单的例子: class test { \t public static void main(String args []){ \t \t Integer x; \t \t System.out.println(x); \t \t}} 类测试{ \t公共静态无效主要(字符串ARGS []){ \t \t整数x = NULL; \t \t System.out.println(x); \t \t}} 输出1:test.java:5:错误:变量x可能尚未初始化 \t \t的System.out.println(X); \t \t^ 1错误 输出2:空 – JAAAY
我觉得他遇到了一个编译器错误,因为他的传球在参数(S)没有初始化,以及他试图绕过与一个try/catch是编译器错误。 – Jayson