我在與那告訴我,即使我一個try/catch塊中初始化它的變量未初始化代碼塊麻煩內發生給未初始化的編譯時錯誤。的日食在初始化的try/catch
我的代碼是:
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);
}
但是,它是說,我需要創建一個局部變量「出來的。」
我CustomizedObject的代碼如下:
public class CustomizedObject {
private String attribute;
public CustomizedObject() {
attribute = "awesome";
}
public String getOutput() throws IOException {
//.....code doing some stuff......
return attribute;
}
}
您的錯誤消息與您的代碼不符。你的代碼的問題是'out'在'try'-block之外是*未聲明的(即超出範圍),但是「初始化的」錯誤信息意味着它被聲明瞭,但可能沒有值。你應該總是發佈代碼來證明你遇到的實際問題,並且你應該總是發佈實際的編譯錯誤消息,逐字(如果只是讓其他人在發現錯誤消息時能夠找到答案) 。 – ruakh 2013-03-06 01:50:49