Java基础(四):妙用Java8中String.join方法,让我们的代码更优美
2018-01-16 23:21
369 查看
【前言】
距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、做一行,钻进去,爱上它,相信会体味到更多的乐趣,同时也会创造更多的价值。
相关文章推荐
- Java 二维码生成基础方法和代码
- 关于java代码中的注释问题。(类中方法的注释,我们一般都要写上这个方法的文档(doc),方法的参数也要有它的文档)
- 【代码笔记】Java基础:Java的方法和类
- java语言基础|如何在main方法前执行其他代码
- Java 基础一些代码练习笔记(object-equals 方法)
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- JAVA基础知识以及一个引用方法来求矩形周长的代码
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- JNI基础(七)C调java静态方法代码
- java基础学习——Java添加事件监听的四种方法代码实例
- Java学习:静态方法,静态变量和静态代码块
- 防止JAVA代码被反编译的简单方法
- 购物车的 java 代码实现方法
- 为Java,我们要做点什么? ——提高代码质量
- java面试题及答案(基础题122道,代码题19道)
- java小游戏基础设计参考代码
- JAVA基础学习篇----《thinking in java》第六章:代码复用
- JAVA断点续传实现方法代码
- java基础3--程序控制语句,类、对象和方法