java - 两个相似的静态方法优化
PHP中文网
PHP中文网 2017-04-18 09:49:49
[Java讨论组]

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

   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();
    }
PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
ringa_lee

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

伊谢尔伦

没想到特别好的办法,要么把参数写再一起,传值的时候传Null的不解析.

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

等待大神回答吧

ringa_lee

把参数改成Object,不用数组类型,在方法体里面判断吧。

巴扎黑

用 guava 就可以了。不用自己再去写吧?

Joiner.on(",").join(Arrays.asList(1, 5, 7)); // returns "1,5,7"
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号