错误案例
public class CheckCycle { public void cycleInfo() { String[] Str = null; //获取各个部件的通知地址 Str = outNotify.getResult(); StringBuffer sb = null; BufferedReader in = null; Connection conn = null; APLResultSet rs = null; String sql= ""; File file = null; for (int i = 0; i < Str.length; i++) { //错误1 if( null != Str) { System.out.print(Str[i]); } //错误2 conn = DB.getConnection(); //打开数据库连接 //错误3 try { //错误4 in = new BufferedReader(new FileReader(file)); //读取文件内容 sb = new StringBuffer(); …… } catch (IOException ex) { Throw ex; } } } }
错误分析
错误1:判断完全可以在for外部进行而不是在循环体内部。
错误2:不要在循环中获取数据库连接。
错误3:循环体内进行不必要的try-catch操作,完全可以放在循环外边。
错误4:减少在循环中不必要的IO操作。
正确用法
public class CheckCycle { public void cycleInfo() { String[] Str = null; //获取各个部件的通知地址 Str = outNotify.getResult(); StringBuffer sb = null; BufferedReader in = null; Connection conn = null; APLResultSet rs = null; String sql= ""; File file = null; if( null != Str) //判断移到循环体外面 { try { conn = DB.getConnection();//打开数据库连接 in = new BufferedReader(new FileReader(file)); //读取文件内容 for (int i = 0; i < Str.length; i++) { System.out.print(Str[i]); sb = new StringBuffer(); …… } } catch (IOException ex) { Throw ex; } } } }