下面这两个方法的实现代码能不能优化一下,我觉得两个方法的代码太相似了,是不是能把相同的代码提取出来。
public static String joinArray(String separator, Object[] s) {
if (s == null || s.length == 0)
return "";
StringBuilder sb = new StringBuilder();
sb.append(s[0]);
for (int i = 1; i < s.length; ++i) {
if (s[i] != null) {
sb.append(separator);
sb.append(s[i].toString());
}
}
return sb.toString();
}
public static String joinArray(String separator, int[] s) {
if (s == null || s.length == 0)
return "";
StringBuilder sb = new StringBuilder();
sb.append(s[0]);
for (int i = 1; i < s.length; ++i) {
sb.append(separator);
sb.append(s[i]);
}
return sb.toString();
}
用 guava 就可以了。不用自己再去写吧?
Joiner.on(",").join(Arrays.asList(1, 5, 7)); // returns "1,5,7"
把参数改成Object,不用数组类型,在方法体里面判断吧。
没想到特别好的办法,要么把参数写再一起,传值的时候传Null的不解析.
要么就 Integer[] a = {1,2,3,4,5,6,7,8,9};
这样构造数组,可以统一使用object这个参数类型,但是总感觉浪费了内存.
等待大神回答吧
没什么好办法,要么传Integer数组,统一用object[]对象,要么就像你这样写2个重载方法
你想多了Integer比int之间性能没那么严重,除非你代码对tps非常敏感,才传int[],如果为了代码传Integer没什么影响的