我的IDE抱怨它不知道proc是否已初始化:
Process proc
这是抱怨的,因为proc的初始化是在try范围内进行的:
// Runtime Getter
Runtime rt = Runtime.getRuntime();
BufferedReader stdInput;
BufferedReader stdError;
// Get output for this executable
String[] commands = {"system.exe","-get t"};
Process proc;
try{
proc = rt.exec(commands);
stdInput=new BufferedReader(new InputStreamReader(
proc.getInputStream()));
stdError=new BufferedReader(new InputStreamReader(
proc.getErrorStream()));
}catch(IOException e){}
将所有抱怨的内容放在try块中是否不好?还有另一种更好的方法吗?
答案 0 :(得分:1)
快速的技巧是在声明它时将其设置为null。
但是,您应该最小化变量的范围,并假设未在该try-catch块之外使用proc
,则应同时声明和分配它。
如果在块外使用它,则必须处理在try-catch后它为null的情况-仅忽略IOException
是个好主意。