问题引入

周五的时候师兄交给我们一个任务,是一个关于自动发消息的功能,其中这个消息可以定义多个模版,所以我率先想到了List来存储我的数据的,我的设计是这样的

 private List<String> hello

但是有另外的一个消息需要封装,因为它也是一个类,我是这样设计的

 List<AutoAddTaskHelloDO> listByTaskId = autoAddTaskHelloRepository.getListByTaskId(dto.getId());

在我把这个listByTaskId,set到一个对象的时候,出现了报错提示,类型转换异常,也就是说我的set是要接受一个List类型的,但是我传入的是一个List的一个List,所以不能传入,怎么办呢,需要类型转换,下面是解决方法

解决办法

方法一:
采用一个for循环便利我们的List listByTaskId对象
然后用一个新的List来接受
伪代码如下

 List<String> list = new ArrayList()<>;for(List<AutoAddTaskHelloDO> s : listByTaskId){list.add(s.getHello());}

大概意思就是这样,但是,代码又长,效率也不高,师兄给我指明了一个方法,就是用Java8新特性,Stream来解决,就是第二种方法
方法二:
利用Java8新特性,可以利用流式计算、链式编程,既可以提高效率也可以简化代码

        List<AutoAddTaskHelloDO> listByTaskId = autoAddTaskHelloRepository.getListByTaskId(dto.getId());List<String> helloList = listByTaskId.stream().map(date -> date.getHello()).collect(Collectors.toList());

总结

对于这种基础东西还是有待提高,Java8的新特性还是要好好看看

实习踩坑之路:利用Java8新特性实现不同范型List之间的相互转换相关推荐

  1. java callback类_利用java8新特性实现类似javascript callback特性

    Java8的新特性之一,就是首次引入了函数式编程Lambda表达式,按oracle的说法,是为了引导java向函数式编程的方向发展. 在JDK1.8中,多了一个包,java.util.function ...

  2. 利用Java8新特性stream流给集合中的某个属性赋值

    今天在编写一个返回对象VO时,需要做一些处理,返回对象VO如下: CollectListVO @Data @JsonIgnoreProperties(ignoreUnknown = true) @Ap ...

  3. mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务

    1.前言 上一篇文章介绍了如何设计后端的Mysql数据库:Alex Wang:全栈开发踩坑之路3-MySql数据库设计,本文介绍如何用MyBatis实现后端服务. 本后端项目的Github地址(撰写中 ...

  4. 微信小程序实现大转盘抽奖----踩坑之路

    微信小程序实现大转盘抽奖----踩坑之路 需求:现在有一个小程序抽奖页面如下,此类抽奖方式为大转盘 思路:由服务端获取抽奖次数和奖品,根据服务端的中奖概率来决定是否中奖,最后利用小程序动画将转盘转起来 ...

  5. 2021-11-01 富文本编辑器Vue-Quill-Editor 踩坑之路

    Vue-Quill-Editor 基于 Quill.适用于 Vue 的富文本编辑器,支持服务端渲染和单页应用. 相对于ssr,spa是通过component进行工作 ssr和spa的区别 1 踩坑之路 ...

  6. [Java灵信LED] -- 踩坑之路

    灵信led -T8 控制板卡 --踩坑之路 下载lv_led.dll 动态库链接 https://pan.baidu.com/s/11ZO-M6kllsq2AyhVW4AKoA 提取码:unsb 提取 ...

  7. jmeter 3版本到5版本踩坑之路

    jmeter 3-5版本升级踩坑路 新版本下载安装 踩坑之路 新版本下载安装 下载新版本软件 ,链接: https://jmeter.apache.org/download_jmeter.cgi: 配 ...

  8. contentprovider踩坑之路之Failed to find provider info for com.example.app.provider和cursor=null空指针问题

    目录 bug1.Failed to find provider info for com.example.app.provider bug2:cursor=null bug1.Failed to fi ...

  9. webpack踩坑之路 (2)——图片的路径与打包

    webpack踩坑之路 (2)--图片的路径与打包 刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我 ...

  10. 基于dx11的动作游戏踩坑之路--1

    基于dx11的动作游戏踩坑之路--1 首先要声明所有的博客都是学习博客,不是技术博,只是用来记录.整理自己的学习路线,以及日后可以回顾一下.本人也只是一个小菜鸡,可能会有很多错误与纰漏,有大佬愿意指出 ...

最新文章

  1. MarkDown编辑器基础使用教程
  2. Aspose.Cells小实例
  3. python如何读写文件-python文件的写入和读取
  4. 腾讯基于 Flink 的实时流计算平台演进之路
  5. “2021知乎高赞好物100”榜单揭晓 知乎为美好生活奉上参考答案
  6. java logging api_Java Logging API - Tutorial
  7. 最佳适配算法和最差适配算法_影响开放社区的最佳(和最差)方法
  8. html表单自动编号,自动编号插件
  9. 数据库介绍(MySQL安装 体系结构、基本管理)
  10. 恩智浦电磁组智能汽车竞赛视频
  11. dm7达梦7Linux安装包,【达梦】DM7安装部署 2 安装达梦7数据库软件
  12. HEVC/H265编码原理
  13. 【OpenFOAM】学习module1
  14. WPS 关闭广告弹窗记录
  15. 一款性能足够的4.5寸以下的手机
  16. 绁炵粡缃戠粶鏁版嵁鏍煎紡,鏂囨湰绁炵粡缃戠粶
  17. 统计学--从对P值的理解谈起
  18. 刘强东的代码水平到底有多牛? 网友:95年一个晚上赚5万!
  19. CHECK的简单用法
  20. 开发TI DSP需要知道的

热门文章

  1. python输入的字符串转换为对应的数字类型_Psychopy | 第1期:数据类型及运算符
  2. Cesium:加载本地高程/地形数据
  3. Node.js:package.json中的dependencies和devDependencies区别
  4. jQuery:点击某元素后根据兄弟节点是否显示,控制兄弟节点的显示与否
  5. MySQL数据库索引优化实战分析
  6. 排列组合计算问题中的卡塔兰数(Catalan Number)
  7. 细粒度图像识别算法Mask-CNN
  8. Elastic Search + Logstash + Kibana 初学者日志
  9. for循环提高内存访问效率的做法
  10. JAVA里面==和euqals的区别