当前位置: 首页 > news >正文

高效开发之:判断复杂list中的对象属性是否包含某个值

技术使用:使用了Java 8引入的Stream API以及Optional类。这些特性用于简化集合的处理和减少空指针异常。

 List<ResourceInfoDto> authData = chatBase.getData();String baseName = dto.getBaseName();Optional<ResourceInfoDto> authWithResourceCode = authData.stream().filter(auth -> baseName.equals(auth.getResourcecode())).findFirst();if (authWithResourceCode.isPresent()) {//拥有此库的权限,执行逻辑}else {//无权限logger.warn("卡号为{}的用户越权访问{}知识库",dto.getStaffCode(),dto.getBaseName());return converseHandleWrapper.handle2("您无权访问此知识库");}

代码解析:

  • **authData.stream():**将authData列表转化为Stream,以便于进行流处理。
  • **filter(auth -> baseName.equals(auth.getResourcecode())):**使用filter方法筛选出所有ResourceInfoDto对象中resourcecode与baseName相等的元素。
  • **findFirst():**尝试找到流中的第一个元素。它返回一个Optional对象,该对象可能包含流中的第一个元素,也可能为空。
  • 通过调用isPresent()方法检查Optional对象是否包含一个值。如果包含一个值,即找到了与给定baseName匹配的ResourceInfoDto对象,那么执行if语句块中的代码。如果没有找到匹配的对象,执行else语句块的代码。
http://www.lryc.cn/news/249513.html

相关文章:

  • MacOS + Android Studio 通过 USB 数据线真机调试
  • 部署jekins遇到的问题
  • SQLY优化
  • 设计模式——行为型模式(一)
  • Rust语言入门教程(六) - 字符串类型
  • 【MATLAB源码-第92期】基于simulink的QPSK调制解调仿真,采用相干解调对比原始信号和解调信号。
  • 关于C语言控制浮点数输出精度问题
  • 【Linux 静态IP配置】
  • 【Linux 操作系统配置 SFTP】
  • 信贷专员简历模板
  • Python自动化测试面试经典题
  • java+springboot物流管理系统设计与实现wl-ssmj+jsp
  • 概念理论类-k8s :架构篇
  • window10家庭版中文转专业版流程
  • Chrome显示分享按钮
  • GPTS-生成一个动漫图像GPT
  • 在gazebo里搭建一个livox mid360 + 惯导仿真平台测试 FAST-LIO2
  • SpringMVC文件下载
  • 前端项目打包放到springboot项目时,访问不带index.html
  • Tomcat注册为服务后,如何配置Tomcat内存大小
  • C语言入门实战教程——嵌入式必备教程(2023年版最全最新整理)
  • Chatbot开发三剑客:LLAMA、LangChain和Python
  • 【Spring之AOP底层源码解析】
  • 【UCAS自然语言处理作业二】训练FFN, RNN, Attention机制的语言模型,并计算测试集上的PPL
  • RabbitMQ消息模型之Sample
  • 安全技术与防火墙
  • Windows系统搭建Appium 2 和 Appium Inspector 环境
  • 计算机应用基础_错题集_OutLook操作题_操作系统应用题_电子表格---网络教育统考工作笔记005
  • 2023-11-26 LeetCode每日一题(统计子串中的唯一字符)
  • HTML新手入门笔记整理:特殊符号