基础篇——代码优化100条之(11—20)
11、使用try-with-resources替代原来的try-catch-finally,自动关闭相关资源
/** * 使用try-with-resources语句替代原来的try-catch-finally,能保证资源关闭 */ //反例 @Test public void testFalse11(String fileName){ BufferedReader br = null; StringBuilder sb = new StringBuilder(); try{ String line; br = new BufferedReader(new FileReader(fileName)); while((line = br.readLine()) != null){ sb.append(line); } System.out.println(sb); }catch (Exception e) { System.out.println(e.getMessage()); } finally { if (br != null) { try{ br.close(); }catch (IOException ioe) { System.out.println(ioe.getMessage()); } } } } //正例 @Test public void testTrue11(String fileName){ StringBuilder sb = new StringBuilder(); try(BufferedReader br = new BufferedReader(new FileReader(fileName))){ String line; while((line = br.readLine()) != null){ sb.append(line); } System.out.println(sb); }catch (Exception e) { System.out.println(e.getMessage()); } }
12、删除未使用的方法和字段
13、删除未使用的局部变量
14、删除未使用的方法参数
15、删除表达式的多余括号
16、工具类应该屏蔽构造函数
package com.zzb.test.admin; /** * 工具类是一堆静态字段和函数的集合,不应该被实例化。但是,Java为每个没有明确定义构造函数的类添加了一个隐式 * 公有构造函数。所以,应该重新定义私有构造函数 * Created by zzb on 2019/12/18 13:23 */ public class TestUtils { private TestUtils(){} }
17、删除多余的异常捕获抛出
/** * 用catch语句捕获异常后,什么也不进行处理,就让异常重新抛出,这跟不捕获异常的效果一样 * 可以删除这些代码或者添加处理 */ //反例 @Test public void testFalse17(String fileName) throws Exception{ StringBuilder sb = new StringBuilder(); try(BufferedReader br = new BufferedReader(new FileReader(fileName))){ String line; while((line = br.readLine()) != null){ sb.append(line); } System.out.println(sb); }catch (Exception e) { throw e; } } //正例 @Test public void testTure17(String fileName) throws Exception{ StringBuilder sb = new StringBuilder(); try(BufferedReader br = new BufferedReader(new FileReader(fileName))){ String line; while((line = br.readLine()) != null){ sb.append(line); } System.out.println(sb); } }
18、公有静态常量应该通过类直接访问
19、不要使用NullPointerException判断空
20、使用String.valueOf(value)代替“”+value