java - 两个相似的静态方法优化

 nuabolalalala6_535 发布于 2022-10-27 14:08

下面这两个方法的实现代码能不能优化一下,我觉得两个方法的代码太相似了,是不是能把相同的代码提取出来。

   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();
    }
4 个回答
  • 用 guava 就可以了。不用自己再去写吧?

    Joiner.on(",").join(Arrays.asList(1, 5, 7)); // returns "1,5,7"
    2022-11-12 01:41 回答
  • 把参数改成Object,不用数组类型,在方法体里面判断吧。

    2022-11-12 01:41 回答
  • 没想到特别好的办法,要么把参数写再一起,传值的时候传Null的不解析.

    要么就 Integer[] a = {1,2,3,4,5,6,7,8,9};这样构造数组,可以统一使用object这个参数类型,但是总感觉浪费了内存.

    等待大神回答吧

    2022-11-12 01:41 回答
  • 没什么好办法,要么传Integer数组,统一用object[]对象,要么就像你这样写2个重载方法
    你想多了Integer比int之间性能没那么严重,除非你代码对tps非常敏感,才传int[],如果为了代码传Integer没什么影响的

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有