错误:可能尚未初始化变量 错误:可能尚未初始化变量局部变量全局变量
程序员文章站
2022-05-28 08:47:34
...
public void save(String inputText){
FileOutputStream out;
BufferedWriter writer;
try{
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter( new OutputStreamWriter(out));
writer.write(inputText);
}catch (IOException ioe){
ioe.printStackTrace();
}finally {
try {
if (writer != null) {
writer.close();
}
}catch (IOException ioe){
ioe.printStackTrace();
}
}
}
这段代码是按照书上写的,却在AndroidStudio中编译是被提示:错误:可能尚未初始化变量writer。百度了一下,原来如果是这个writer是全局变量编译器就会允许它不初始化,但是如果是局部变量就必须初始化,但是我们可以初始化为null。于是把初始化代码改成:BufferedWriter writer = null; 编译器就不再报错了。
FileOutputStream out;
BufferedWriter writer;
try{
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter( new OutputStreamWriter(out));
writer.write(inputText);
}catch (IOException ioe){
ioe.printStackTrace();
}finally {
try {
if (writer != null) {
writer.close();
}
}catch (IOException ioe){
ioe.printStackTrace();
}
}
}
这段代码是按照书上写的,却在AndroidStudio中编译是被提示:错误:可能尚未初始化变量writer。百度了一下,原来如果是这个writer是全局变量编译器就会允许它不初始化,但是如果是局部变量就必须初始化,但是我们可以初始化为null。于是把初始化代码改成:BufferedWriter writer = null; 编译器就不再报错了。