第53条 慎用可变参数
-
如果可变参数要求至少要求一个参数的话,可以使用这种样式
public int min(int firstArg, int... remainingArgs) { int min = firstArg; for(int arg: remainingArgs) { if (arg < min) { min = arg; } } return min; }
-
可变参数可能会带来一些性能问题,如果对应能有一定要求可以使用方法重载
public void foo() {} public void foo(int a1) {} public void foo(int a1, int a2){} public void foo(int a1, int a2, int... rest){}
思考
- Guava的很多构造方法就采用了第2点的格式
第54条 返回零长度的数组或集合, 而不是null
- 如果担心每次返回空列表都会创建一个新的对象而带来开销,可以使用
Collections
里面的emptyList
、emptySet
、empetMap
方法,只不过可能不会带来多大的性能提升
网友评论