最近看mybatis源码,看了一段时间了,还在继续,里面有很多好东西,后面整理出来分享给大家,这里先写两个小的细节,可能有些同学已经是这么写了,那么就当做你没看好了。希望你觉得是新鲜的。
?
先来看下面这段代码,这个代码本身没什么意义,只是表示一下写法:
?
?
class="java" name="code">package collection; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MTest { private static final Map<Integer,String> map = new HashMap<Integer,String>(){ /** * */ private static final long serialVersionUID = 1L; { put(1, "a"); put(2, "b"); } }; public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.toArray(new String[list.size()]); } }
?上面代码中包含了我要说的两个点:
?
第一点:在写静态map的时候直接匿名内部类初始化,代替static块:
原来我是这么写:
private static final Map<Integer,String> map = new HashMap<Integer,String>(); static{ map.put(1,"a"); map.put(2,"b"); }
现在可以用如下代码代替:
private static final Map<Integer,String> map = new HashMap<Integer,String>(){ /** * */ private static final long serialVersionUID = 1L; { put(1, "a"); put(2, "b"); } };
第二点:集合类转数组的时候指定数组大小:
原来我的写法:
list.toArray(new String[]{});
改用如下写法更好:
list.toArray(new String[list.size()]);
?
怎么样,你是不是这么写的?