iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >常用工具类
  • 705
分享到

常用工具类

java开发语言 2023-09-12 12:09:13 705人浏览 八月长安
摘要

目录 0、快捷键1、对象判空2、java 8 对象判空,抛异常 Optional.ofNullable().orElseThrow()3、字符串判空4、分割字符串5、java 8 新特性5.1

目录

0、快捷键

鼠标放在方法上按 Alt + F7 :查找该方法被哪些类所调用
Alt + Insert :生成 get set 构造方法 等
Ctrl + E :查看最近浏览过的文件,方便切换

1、对象判空

ObjectUtils.isNull() 与 ObjectUtils.isEmpty()
前者只在对象为null是返回true。
后者在对象为null和空(比如字符串为"",比如一个list、map等不为null,但长度为0)时返回true。

hutool 工具包中是 ObjectUtil.isNull()、isEmpty
mybatisplus 工具包中是 ObjectUtils.isNull()、isEmpty

2、java 8 对象判空,抛异常 Optional.ofNullable().orElseThrow()

例如:查询到的user为null的话,抛出用户名或密码错误异常。
如果查询到的user不为null的话可以通过 .map 在里面执行一些操作。

Optional.ofNullable(user).map(u -> {}).orElseThrow(() -> new BadCredentialsException("用户名或密码错误"));

3、字符串判空

mbatisplus下的

StringUtils.isEmpty()StringUtils.isNotEmpty()StringUtils.isBlank()StringUtils.isNotBlank()

hutool下的

StrUtil.isEmpty()StrUtil.isEmptyIfStr()StrUtil.isBlank()StrUtil.isBlankIfStr()

springframework下的

StringUtils.hasText() // 当字符串不为null "" " " 时返回true

4、分割字符串

hutool下的

String[] strings = StrUtil.splitToArray(s, ','); // 自带自动判空

5、java 8 新特性

5.1 基本形式

对 list 数据处理,并返回处理后的新 list

list.stream().map(po -> {return ...}).collect(Collectors.toList());

只遍历 list

list.stream().forEach(po -> ...操作);

对 list 数据筛选,只保留满足条件的数据

list.stream().filter(a -> a.getParentId().equals(0L))

对 list 数据排序

list.stream().sorted(Comparator.comparingInt(item -> (item.getSort() == null ? 0 : item.getSorted()))) // 按照sort字段排序,先判断sort字段是否为null。Comparator.comparing(...).reversed() // 降序

5.2 数组转为流(Arrays.stream)

不采取 for 的方式,可类似于 list 转为 stream 遍历

Arrays.stream(strings).map(x -> {...; return vo}).collect(Collectors.toList()); // 对数组每个元素处理,最后可通过 collect.. 返回一个类型为vo的列表Arrays.stream(strings).anyMatch(s -> {})  // strings中只要有一个符合条件的就返回true  .allMatch  .noneMatch// 用于对数组中的每个元素执行指定的操作,但不返回任何结果。Arrays.stream(nums).forEach()// 用于对数组中的每个元素进行转换,并返回一个新的Stream对象Arrays.stream(nums).map()   

5.3、map也可以转list

TreeMap<Integer,Integer> m = new TreeMap<>();m.entrySet() .stream() .map(a -> Arrays.asList(a.geTKEy(), a.getValue())) // 将 map 中的每一对元素转为 list .collect(Collectors.toList());

5.4 获取枚举中某一属性组成的数组

public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray();// values() 拿到所有枚举值;mapToInt 将 Integer 类型转为 int 类型;TerminalEnum::getTerminal 获取所有 terminal 属性值,terminal 是 Integer类型// Integer 数组 -> int 数组int[] b = Arrays.stream(a).mapToInt(Integer::intValue).toArray(); // a是Integer数组

6、LocalDateTime 进行日期比较

LocalDateTime.now().isAfter(LocalDateTime对象) // 当前时间是否在指定日期之后LocalDateTime.now().isBefore(LocalDateTime对象) // 当前时间是否在指定日期之前

hutool 工具类

(1)Convert 类型转换

int  a = 1;String str = Convert.toStr(a);Double da = Convert.toDouble(a);...

(2)格式化日期

Date date = new Date(System.currentTimeMillis());String fORMat = "yyyy年MM月dd日 hh时mm分ss秒";String formatDate = DateUtil.format(date, format);

(3)每天/每月开始结束时间

// 每天的开始/结束时间Date beginOfDay = DateUtil.beginOfDay(date);Date endOfDay = DateUtil.endOfDay(date);// 每月的开始/结束时间Date beginOfMonth = DateUtil.beginOfMonth(date);Date endOfMonth = DateUtil.endOfMonth(date);

(4)CollUtil 集合工具类
大部分方法适用于 list、queue、set。如去重、判空、交集、并集、最大最小值等。

集合去重:List<Integer> list = Arrays.asList(1, 2, 2, 3, 4, 4, 4, 5);ArrayList<Integer> list1 = CollUtil.distinct(list);List<Integer> list2 = list.stream().distinct().collect(Collectors.toList());集合判空:// 记住Empty,null 和 长度为0 都为trueList<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);List<Integer> list2 = new ArrayList<>();List<Integer> list3 = null;System.out.println(CollUtil.isNotEmpty(list1)); // trueSystem.out.println(CollUtil.isEmpty(list2));    // trueSystem.out.println(CollUtil.isEmpty(list3));    // true集合交集:CollUtil.intersection(list1,list2)集合并集:CollUtil.uNIOn(list1,list2)集合最大最小值:CollUtil.min(list)CollUtil.max(list)

来源地址:https://blog.csdn.net/henulmh/article/details/128812650

--结束END--

本文标题: 常用工具类

本文链接: https://www.lsjlt.com/news/404525.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 常用工具类
    目录 0、快捷键1、对象判空2、java 8 对象判空,抛异常 Optional.ofNullable().orElseThrow()3、字符串判空4、分割字符串5、java 8 新特性5.1...
    99+
    2023-09-12
    java 开发语言
  • Java常用工具类总结
    目录一、线程协作、控制并发流程的工具类二、CountDownLatch倒计时门闩三、Semaphore信号量四、Condition接口(又称条件对象)五、CyclicBarrier和...
    99+
    2024-04-02
  • 60个vue常用工具类
    1.VUE验证邮箱 export const isEmail = (s) => { return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+...
    99+
    2023-01-07
    60个vue常用工具类 vue邮箱验证 vue浏览器识别 vue操作系统识别 vue html过滤 vue身份证校验 VUE检测密码强度 VUE数组排序 VUE判断一个元素是否在数组中 VUE验证是否
  • java常用工具类有哪些
    这篇文章给大家分享的是有关java常用工具类有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。java中有用的工具集任何语言都要处理日期,map类型,字符串,数字类型的数据,这里找到一些用java经常处理这些数...
    99+
    2023-06-03
  • javascript常用工具类如何封装
    小编给大家分享一下javascript常用工具类如何封装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言因为工作中经常用到这些...
    99+
    2024-04-02
  • java常用util工具类有哪些
    Java常用的util工具类有以下几类:1. 字符串处理工具类:例如StringUtils、StringBuffer、StringB...
    99+
    2023-10-09
    java
  • java常用的工具类有哪些
    Java常用的工具类有:1. StringUtils:字符串处理工具类,提供了各种字符串操作方法,如判空、拼接、替换等。2. Mat...
    99+
    2023-08-15
    java
  • Java BeanUtils工具类常用方法讲解
    谨慎使用这个copyproperties这个功能,相同的属性都会被替换,不管是否有值  BeanUtils 是 Apache commons组件的成员之一,主要用于简化J...
    99+
    2024-04-02
  • Java代码常用工具类有哪些
    这篇文章主要为大家展示了“Java代码常用工具类有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java代码常用工具类有哪些”这篇文章吧。一、org.apache.commons.io.IO...
    99+
    2023-06-02
  • Java中有哪些常用的工具类
    今天就跟大家聊聊有关Java中有哪些常用的工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、线程协作、控制并发流程的工具类 什么是控制并发流程?控制并发流程的工具类,...
    99+
    2023-06-15
  • 工具类之关于RestTemplateUtil工具类的使用
    目录工具类-RestTemplateUtil工具类代码可直接复制使用RestTemplate配置类和工具类工具类-RestTemplateUtil工具类 代码可直接复制使用 配置Re...
    99+
    2022-11-13
    工具类使用  RestTemplateUtil工具类 RestTemplateUtil的使用
  • Java中常用的Java工具类有哪些
    这篇文章主要介绍Java中常用的Java工具类有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一. org.apache.commons.io.IOUtilscloseQuietly:关闭一个IO流、socket...
    99+
    2023-06-17
  • Java常用工具类库——Hutool的使用简介
    目录前言HuTool 中的一些常用工具类日期相关 API随机工具图片工具彩色转换成黑白添加文字水印加密解密工具布隆过滤器邮件工具HTML 工具HtmlUtil.cleanHtmlTa...
    99+
    2024-04-02
  • JAVA文件读取常用工具类(8种)
    目录一、读取文件成字节二、将字节写入文件三、按行读取文件成list四、输出list到文件五、从标准输入中读入六、读取文件成字符串七、输出字符串到文件八、读取文件成数据矩阵总结JAVA...
    99+
    2024-04-02
  • Python常用工具类之adbtool示例代码
    1.adb常用命令 关闭adb服务:adb kill-server 启动adb服务  adb start-server 查询当前运行的所有设备  adb devi...
    99+
    2024-04-02
  • Java BeanUtils工具类常用方法有哪些
    Java BeanUtils工具类常用方法有:1. copyProperties(Object dest, Object orig)...
    99+
    2023-08-15
    Java BeanUtils
  • MySQL中常用工具
    ♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便问,只要会...
    99+
    2023-09-05
    mysql 数据库 sql
  • Java项目常见工具类详解
    目录JWT工具类MD5工具类视频点播工具类公共常量工具类日期操作工具类Http客户端工具类获取IP工具类JWT工具类 这里一共涉及四个方法: 传入用户信息获得token 传入toke...
    99+
    2024-04-02
  • Jackson常用方法以及jacksonUtil工具类详解
    前言: 项目中我们通常使用ajax返回json数据格式的形式进行前后端数据交互,所以会用到java数据json数据互相转化,通常我们的做法是在项目中创建一个工具类进行转化处理。 如下...
    99+
    2024-04-02
  • Java世界常用的工具类库有哪些
    小编给大家分享一下Java世界常用的工具类库有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Apache CommonsApache Commons有很多子项...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作