Java8中String.join方法,让我们的代码更优美

Java8中String.join方法,让我们的代码更优美强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】距Java8(14年3月19日)发布马上就四年了;相信接触过java8的人,会对它的很多新的特性新的方法有感觉;自然我也不例外;今天就一起给大家分享一个java8中的方法。【善用新语法,让代码更优美】一、简洁:最近自己在做项目的时候学习到很多技巧…

大家好,又见面了,我是你们的朋友全栈君。

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

【前言】

       距Java8(14年3月19日)发布马上就四年了;相信接触过java8的人,会对它的很多新的特性新的方法有感觉;自然我也不例外;今天就一起给大家分享一个java8中的方法。

【善用新语法,让代码更优美】

       一、简洁:最近自己在做项目的时候学习到很多技巧,让自己的代码更加的简洁,优美;今天着重为大家介绍一下学到的其中一个小技巧—妙用String.join;

      二、场景,我们有一组图片需要上传到OSS并将这些图片在OSS上存储的URL以分号为分割存储到数据库一个字段中;比如上传三张图片的结果:  http://oss.com/1.jpg;http://oss.com/2.jpg;http://oss.com3.jpg

      三、下面是自己写之前合之后的代码,其中用到了(OSS上传方法,大家参考(OSS(一):OSS工具类));大家感受一下:

           1、没有用String.join代码:

 

    /**
     * 上传文件
     *
     * @param multipartFiles 待上传文件
     * @return 上传到OSS的地址
     * @throws BusinessException 异常
     */
    public String upload(List<MultipartFile> multipartFiles) throws BusinessException {
        String uploadResult = "";
        boolean flag = true;
        try {
            for (MultipartFile multipartFile : multipartFiles) {
                if (flag) {
                    uploadResult = OSSUtil.upload(multipartFile, OSSUtil.FileDirType.BUSINESS);
                } else {
                    uploadResult += ";" + OSSUtil.upload(multipartFile, OSSUtil.FileDirType.BUSINESS);
                }
                flag = false;
            }
        } catch (Exception e) {
            LoggerUtil.logService("call OSSUtil.upload; Exception:" + e.getMessage());
            throw new BusinessException(WrongMessageEnum.EXCEPTION_STORE);
        }
        return uploadResult;
    }

 

 

           2、用Sting.join后的代码

 

    /**
     * 上传文件
     *
     * @param multipartFiles 待上传文件
     * @return 上传到OSS的地址
     * @throws BusinessException 异常
     */
    public String upload(List<MultipartFile> multipartFiles) throws BusinessException {
        List<String> uploadList = new ArrayList<>();
        try {
            for (MultipartFile multipartFile : multipartFiles) {
                String url = OSSUtil.upload(multipartFile, OSSUtil.FileDirType.BUSINESS);
                uploadList.add(url);
            }
        } catch (Exception e) {
            LoggerUtil.logService("call OSSUtil.upload; Exception:" + e.getMessage());
            throw new BusinessException(WrongMessageEnum.EXCEPTION_STORE);
        }
        return String.join(";", uploadList);
    }

 

           3、以上两种写法的最终效果是一样的,大家应该get到其中的味道了吧!                

【总结】

       1、好的代码给人一种美感,好的代码让人看后直呼过瘾;如何写出一手好的代码那?三多是不二的法门(多看、多动手、多思考);             

       2、看待一个事物要从多个维度,比如:针对java8,有的项目在用有的则没有用;不能一味的说用了是好的不用是不好的;而是要站在不同的维度通过不同的视角去看待,比如有些老项目,换成java8后修改成本和风险都很大,比如有的项目需要在客户机器上运行,但是客户有部分的机器配置等条件只支持jdk6或更低版本的jdk等等;当然相信随着时代的发展,更好的技术会逐渐的普及,带给我们更好的生活;

       3、做一行,钻进去,爱上它,相信会体味到更多的乐趣,同时也会创造更多的价值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135558.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月4日 下午10:46
下一篇 2022年6月4日 下午10:46


相关推荐

  • Kafka简明教程「建议收藏」

    Kafka简明教程「建议收藏」作者:柳树之www.jianshu.com/p/7b77723d4f96Kafka是啥?用Kafka官方的话来说就是:Kafkaisusedforbuildingreal-timedatapipelinesandstreamingapps.Itishorizontallyscalable,fault-tolerant,wickedfast,an…

    2022年10月17日
    4
  • 【超详细】计算机组成原理总结及思维导图[通俗易懂]

    计算机组成第一章计算机系统概论冯诺依曼型计算机特点1.计算机由运算器,控制器,存储器,输入和输出设备5部分组成2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制表示。3.指令由操作码和地址码组成4.指令在存储器中按执行顺序存放,由指令计数器(即程序计数器PC)指明要执行的指令所在的储存单元地址,一般按顺序递增,但可按运算结果或外界条件而改变5.机器以运…

    2022年4月17日
    67
  • BurpSuit暴力激活成功教程密码

    BurpSuit暴力激活成功教程密码暴力激活成功教程原理暴力激活成功教程是用户自定义字典文件中的内容与验证程序交互,从而在枚举过程中得到正确数据案例:激活成功教程用户名、密码激活成功教程验证码-之前四位数的手机验证码在未进行任何防护措施,导致被枚举出来暴力激活成功教程的基础应用程序或服务器未进行限制具有内容涵盖全方面的字典文件暴力激活成功教程方式根据激活成功教程的验证码内容是否处于服务状态将暴力激活成功教程分为以下两类:1.在线激活成功教程2.离线激活成功教程无论是在线还是离线是否可以…

    2022年8月22日
    14
  • matlab for步长,matlab循环语句for怎么用

    matlab for步长,matlab循环语句for怎么用matlab 循环语句 for 怎么用 matlab 中 for 语句使用方法和应用实例 for 循环语句 1 一般格式为 forx 循环变量 array 数组 commands 执行的循环代码 end2 array 可以是一个数字 也可以是数组 例如输入 fora 5fora 1 5fora 1 1 5 以 1 为步长到 5 只不过在 a 1 5 和 a 1 1 5 时 会显示之间的结果 a 5 时只显示最后结果 a

    2026年3月19日
    2
  • php对联广告,对联广告

    php对联广告,对联广告对联广告即用对联的形式宣传产品的广告 从古至今 这种广告形式一直受到人们的青睐和欢迎 戏园的广告是 凡事莫当前 看戏何如听戏好 为人须顾后 上台终有下台时 古玩店的对联是 玩物岂能真丧志 居原只为乐陶情 这两则对联广告妙就妙在不仅仅是一则普通的广告 更是人生箴言 眼镜店的广告是 好句不妨灯下草 高年能辨雾中花 真乃恰到好处 令人回味无穷 酒类广告也很有特色 山西杏花村汾酒的广告是 酒气冲天

    2026年3月26日
    3
  • Groupid(artifact id)

    什么是groupid和artifactId?groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。groupId和artifactId是maven管理项目包时用作区分的字段,就像是地图上的坐标。artifactId:artifactId一般是项目名或者模块名。group…

    2022年4月15日
    82

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号