我遇到了一个代码块的问题,它告诉我一个变量没有初始化,即使我在 try/catch block 中初始化了它。
我的代码是:
public String doSomething(String input1, String input2) {
CustomizedObject myobject = new CustomizedObject();
try {
Output out = (Output) myobject.getOutput();
} catch (IOException e) {
System.err.println("Error: " + e.getMessage());
}
return out.doSomethingString(input1, input2);
}
但是,它说我需要创建一个局部变量“out”。
我的CustomizedObject 的代码如下:
public class CustomizedObject {
private String attribute;
public CustomizedObject() {
attribute = "awesome";
}
public String getOutput() throws IOException {
//.....code doing some stuff......
return attribute;
}
}
最佳答案
您无法在 try/catch block 内初始化Output out
。请尝试以下操作:
public String doSomething(String input1, String input2) {
CustomizedObject myobject = new CustomizedObject();
Output out = null;
try {
out = (Output) myobject.getOutput();
} catch (IOException e) {
System.err.println("Error: " + e.getMessage());
}
return out.doSomethingString(input1, input2);
}
注意,如果抛出IOException
,上面的代码将会抛出NullPointerException
;因此,如果 out == null
,您可能不想 out.doSomething
。
关于java - 当初始化发生在 try/catch 中时,Eclipse 给出未初始化的编译时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237516/