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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: Java8中String.join方法,让我们的代码更优美

强烈推荐一个大神的人工智能的教程:http://www.captainai.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、做一行,钻进去,爱上它,相信会体味到更多的乐趣,同时也会创造更多的价值。


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
17天前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
|
5天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
15 1
|
1月前
|
XML 安全 Java
Java反射机制:解锁代码的无限可能
Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的信息,包括类的属性、方法和构造函数。 反射机制能够使程序具备更大的灵活性和扩展性
41 5
Java反射机制:解锁代码的无限可能
|
23天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
76 4
|
2月前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
48 17
|
2天前
|
安全 Java API
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
|
27天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
61 3
|
1月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
92 10
|
27天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
72 2
|
28天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置