Spring Boot 内置工具类

Windows平台COLMAP实战:从零到三维重建的避坑指南 本文详细介绍了在Windows平台上使用COLMAP进行三维重建的完整流程,包括安装指南、数据准备技巧、图形界面操作及常见问题解决方案。特别针对Windows用户提供了CUDA版本与非CUDA版本的性能对比,帮助用户高效完成从照片到三维模型的重建过程。 阅读详情
  1. 断言是一个逻辑判断,用于检查不应该发生的情况
  2. Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启
  3. ringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查
    // 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行
    
    // 参数 message 参数用于定制异常信息。
    void notNull(Object object, String message)
    // 要求参数必须空(Null),否则抛出异常,不予『放行』。
    // 和 notNull() 方法断言规则相反
    void isNull(Object object, String message)
    // 要求参数必须为真(True),否则抛出异常,不予『放行』。
    void isTrue(boolean expression, String message)
    // 要求参数(List/Set)必须非空(Not Empty),否则抛出异常,不予放行
    void notEmpty(Collection collection, String message)
    // 要求参数(String)必须有长度(即,Not Empty),否则抛出异常,不予放行
    void hasLength(String text, String message)
    // 要求参数(String)必须有内容(即,Not Blank),否则抛出异常,不予放行
    void hasText(String text, String message)
    // 要求参数是指定类型的实例,否则抛出异常,不予放行
    void isInstanceOf(Class type, Object obj, String message)
    // 要求参数 `subType` 必须是参数 superType 的子类或实现类,否则抛出异常,不予放行
    void isAssignable(Class superType, Class subType, String message)
    

对象、数组、集合

ObjectUtils

  1. 获取对象的基本信息
    // 获取对象的类名。参数为 null 时,返回字符串:"null" 
    String nullSafeClassName(Object obj)
    // 参数为 null 时,返回 0
    int nullSafeHashCode(Object object)
    // 参数为 null 时,返回字符串:"null"
    String nullSafeToString(boolean[] array)
    // 获取对象 HashCode(十六进制形式字符串)。参数为 null 时,返回 0 
    String getIdentityHexString(Object obj)
    // 获取对象的类名和 HashCode。参数为 null 时,返回字符串:"" 
    String identityToString(Object obj)
    // 相当于 toString()方法,但参数为 null 时,返回字符串:""
    String getDisplayString(Object obj)
    
  2. 判断工具
    // 判断数组是否为空
    boolean isEmpty(Object[] array)
    // 判断参数对象是否是数组
    boolean isArray(Object obj)
    // 判断数组中是否包含指定元素
    boolean containsElement(Object[] array, Object element)
    // 相等,或同为 null时,返回 true
    boolean nullSafeEquals(Object o1, Object o2)
    /*
    判断参数对象是否为空,判断标准为:
        Optional: Optional.empty()
           Array: length == 0
    CharSequence: length == 0
      Collection: Collection.isEmpty()
             Map: Map.isEmpty()
     */
    boolean isEmpty(Object obj)
    
  3. 其他工具方法
    // 向参数数组的末尾追加新元素,并返回一个新数组
    <A, O extends A> A[] addObjectToArray(A[] array, O obj)
    // 原生基础类型数组 --> 包装类数组
    Object[] toObjectArray(Object source)
    

StringUtils

  1. 字符串判断工具
    // 判断字符串是否为 null,或 ""。注意,包含空白符的字符串为非空
    boolean isEmpty(Object str)
    // 判断字符串是否是以指定内容结束。忽略大小写
    boolean endsWithIgnoreCase(String str, String suffix)
    // 判断字符串是否已指定内容开头。忽略大小写
    boolean startsWithIgnoreCase(String str, String prefix) 
    // 是否包含空白符
    boolean containsWhitespace(String str)
    // 判断字符串非空且长度不为 0,即,Not Empty
    boolean hasLength(CharSequence str)
    // 判断字符串是否包含实际内容,即非仅包含空白符,也就是 Not Blank
    boolean hasText(CharSequence str)
    // 判断字符串指定索引处是否包含一个子串。
    boolean substringMatch(CharSequence str, int index, CharSequence substring)
    // 计算一个字符串中指定子串的出现次数
    int countOccurrencesOf(String str, String sub)
    
  2. 字符串操作工具
    // 查找并替换指定子串
    String replace(String inString, String oldPattern, String newPattern)
    // 去除尾部的特定字符
    String trimTrailingCharacter(String str, char trailingCharacter) 
    // 去除头部的特定字符
    String trimLeadingCharacter(String str, char leadingCharacter)
    // 去除头部的空白符
    String trimLeadingWhitespace(String str)
    // 去除头部的空白符
    String trimTrailingWhitespace(String str)
    // 去除头部和尾部的空白符
    String trimWhitespace(String str)
    // 删除开头、结尾和中间的空白符
    String trimAllWhitespace(String str)
    // 删除指定子串
    String delete(String inString, String pattern)
    // 删除指定字符(可以是多个)
    String deleteAny(String inString, String charsToDelete)
    // 对数组的每一项执行 trim() 方法
    String[] trimArrayElements(String[] array)
    // 将 URL 字符串进行解码
    String uriDecode(String source, Charset charset)
    
  3. 路径相关工具方法
    // 解析路径字符串,优化其中的 “..” 
    String cleanPath(String path)
    // 解析路径字符串,解析出文件名部分
    String getFilename(String path)
    // 解析路径字符串,解析出文件后缀名
    String getFilenameExtension(String path)
    // 比较两个两个字符串,判断是否是同一个路径。会自动处理路径中的 “..” 
    boolean pathEquals(String path1, String path2)
    // 删除文件路径名中的后缀部分
    String stripFilenameExtension(String path) 
    // 以 “. 作为分隔符,获取其最后一部分
    String unqualify(String qualifiedName)
    // 以指定字符作为分隔符,获取其最后一部分
    String unqualify(String qualifiedName, char separator)
    

CollectionUtils

  1. 集合判断工具
    // 判断 List/Set 是否为空
    boolean isEmpty(Collection<?> collection)
    // 判断 Map 是否为空
    boolean isEmpty(Map<?,?> map)
    // 判断 List/Set 中是否包含某个对象
    boolean containsInstance(Collection<?> collection, Object element)
    // 以迭代器的方式,判断 List/Set 中是否包含某个对象
    boolean contains(Iterator<?> iterator, Object element)
    // 判断 List/Set 是否包含某些对象中的任意一个
    boolean containsAny(Collection<?> source, Collection<?> candidates)
    // 判断 List/Set 中的每个元素是否唯一。即 List/Set 中不存在重复元素
    boolean hasUniqueObject(Collection<?> collection)
    
  2. 集合操作工具
    // 将 Array 中的元素都添加到 List/Set 中
    <E> void mergeArrayIntoCollection(Object array, Collection<E> collection)  
    // 将 Properties 中的键值对都添加到 Map 中
    <K,V> void mergePropertiesIntoMap(Properties props, Map<K,V> map)
    // 返回 List 中最后一个元素
    <T> T lastElement(List<T> list)  
    // 返回 Set 中最后一个元素
    <T> T lastElement(Set<T> set) 
    // 返回参数 candidates 中第一个存在于参数 source 中的元素
    <E> E findFirstMatch(Collection<?> source, Collection<E> candidates)
    // 返回 List/Set 中指定类型的元素。
    <T> T findValueOfType(Collection<?> collection, Class<T> type)
    // 返回 List/Set 中指定类型的元素。如果第一种类型未找到,则查找第二种类型,以此类推
    Object findValueOfType(Collection<?> collection, Class<?>[] types)
    // 返回 List/Set 中元素的类型
    Class<?> findCommonElementType(Collection<?> collection)
    

文件、资源、IO 流

FileCopyUtils

  1. 输入
    // 从文件中读入到字节数组中
    byte[] copyToByteArray(File in)
    // 从输入流中读入到字节数组中
    byte[] copyToByteArray(InputStream in)
    // 从输入流中读入到字符串中
    String copyToString(Reader in)
    
  2. 输出
    // 从字节数组到文件
    void copy(byte[] in, File out)
    // 从文件到文件
    int copy(File in, File out)
    // 从字节数组到输出流
    void copy(byte[] in, OutputStream out) 
    // 从输入流到输出流
    int copy(InputStream in, OutputStream out) 
    // 从输入流到输出流
    int copy(Reader in, Writer out)
    // 从字符串到输出流
    void copy(String in, Writer out)
    

ResourceUtils

  1. 从资源路径获取文件
    // 判断字符串是否是一个合法的 URL 字符串。
    static boolean isUrl(String resourceLocation)
    // 获取 URL
    static URL getURL(String resourceLocation) 
    // 获取文件(在 JAR 包内无法正常使用,需要是一个独立的文件)
    static FilegetFile(String resourceLocation)
    
  2. Resource
    // 文件系统资源 D:\...
    FileSystemResource
    // URL 资源,如 file://... http://...
    UrlResource
    // 类路径下的资源,classpth:...
    ClassPathResource
    // Web 容器上下文中的资源(jar 包、war 包)
    ServletContextResource
    // 判断资源是否存在
    boolean exists()
    // 从资源中获得 File 对象
    File getFile()
    // 从资源中获得 URI 对象
    URI getURI()
    // 从资源中获得 URI 对象
    URL getURL()
    // 获得资源的 InputStream
    InputStream getInputStream()
    // 获得资源的描述信息
    String getDescription()
    

StreamUtils

  1. 输入
    void copy(byte[] in, OutputStream out)
    int copy(InputStream in, OutputStream out)
    void copy(String in, Charset charset, OutputStream out)
    long copyRange(InputStream in, OutputStream out, long start, long end)
    
  2. 输出
    byte[] copyToByteArray(InputStream in)
    String copyToString(InputStream in, Charset charset)
    // 舍弃输入流中的内容
    int drain(InputStream in)
    

反射、AOP

ReflectionUtils

  1. 获取方法
    // 在类中查找指定方法
    Method findMethod(Class<?> clazz, String name) 
    // 同上,额外提供方法参数类型作查找条件
    Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes) 
    // 获得类中所有方法,包括继承而来的
    Method[] getAllDeclaredMethods(Class<?> leafClass) 
    // 在类中查找指定构造方法
    Constructor<T> accessibleConstructor(Class<T> clazz, Class<?>... parameterTypes) 
    // 是否是 equals() 方法
    boolean isEqualsMethod(Method method) 
    // 是否是 hashCode() 方法 
    boolean isHashCodeMethod(Method method) 
    // 是否是 toString() 方法
    boolean isToStringMethod(Method method) 
    // 是否是从 Object 类继承而来的方法
    boolean isObjectMethod(Method method) 
    // 检查一个方法是否声明抛出指定异常
    boolean declaresException(Method method, Class<?> exceptionType)
    
  2. 执行方法
    // 执行方法
    Object invokeMethod(Method method, Object target)  
    // 同上,提供方法参数
    Object invokeMethod(Method method, Object target, Object... args) 
    // 取消 Java 权限检查。以便后续执行该私有方法
    void makeAccessible(Method method) 
    // 取消 Java 权限检查。以便后续执行私有构造方法
    void makeAccessible(Constructor<?> ctor)
    
  3. 获取字段
    // 在类中查找指定属性
    Field findField(Class<?> clazz, String name) 
    // 同上,多提供了属性的类型
    Field findField(Class<?> clazz, String name, Class<?> type) 
    // 是否为一个 "public static final" 属性
    boolean isPublicStaticFinal(Field field)
    
  4. 设置字段
    // 获取 target 对象的 field 属性值
    Object getField(Field field, Object target) 
    // 设置 target 对象的 field 属性值,值为 value
    void setField(Field field, Object target, Object value) 
    // 同类对象属性对等赋值
    void shallowCopyFieldState(Object src, Object dest)
    // 取消 Java 的权限控制检查。以便后续读写该私有属性
    void makeAccessible(Field field) 
    // 对类的每个属性执行 callback
    void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc) 
    // 同上,多了个属性过滤功能。
    void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc, 
                      ReflectionUtils.FieldFilter ff) 
    // 同上,但不包括继承而来的属性
    void doWithLocalFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)
    

AopUtils

  1. 判断代理类型
    // 判断是不是 Spring 代理对象
    boolean isAopProxy()
    // 判断是不是 jdk 动态代理对象
    isJdkDynamicProxy()
    // 判断是不是 CGLIB 代理对象
    boolean isCglibProxy()
    
  2. 获取被代理对象的 class
    // 获取被代理的目标 class
    Class<?> getTargetClass()
    

AopContext

  1. 获取当前对象的代理对象
    Object currentProxy()
    
electron windows设置镜像地址环境变量报错npm error `ELECTRON_MIRROR` is not a valid npm option 如果你是在使用某个特定的脚本或配置文件,请检查该文件中是否有不正确的配置项,并进行相应的修正。确保你遵循electron的官方安装指南,并且没有包含不必要的或错误的配置选项。如果问题依然存在,可以查看npm的官方文档或者相关社区获取更多帮助。 阅读详情

相关推荐

人民网留言数据爬取

起因是要做一个LDA主题分析的实践案例,需要数据来源,人民网的留言数据特别的适合,想着能不能用人民网留言数据来做一个LDA,种种原因还是放弃了,但是第一次弯弯绕绕地通过爬虫拿到了数据,还是想记录一下。值得说明的是,这篇博客写于2025年11月9日,其中的加密逻辑可能会随着时间而变动。

Phoenix1st的博客 1021

别再自己瞎写工具类了,SpringBoot内置工具类应有尽有,建议收藏!!

???? 这是一个或许对你有用的社群???? 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:《项目实战(视频)》:从书中学,往事上“练”《互联网高频面试题》:面朝简历学习,春暖花开《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题《精进 Java 学习指南》:系统学习,互联网主流技术栈《必读 Java 源码专栏》:知其然,知其所以然????这是一个或许...

芋艿V 1995

BLDC方波控制 vs. FOC:技术选型指南与未来演进

本文深入对比BLDC电机方波控制与FOC技术的核心差异,分析两者在成本、性能和应用场景上的权衡。方波控制凭借低成本和易实现性,在电动工具和家电领域优势明显;而FOC则以平滑高效控制见长,适用于高端精密应用。文章为工程师提供了实用的技术选型指南,并展望了未来技术融合的发展趋势。

yhn4567890的博客 1172

SpringBoot应用常用的工具类

统一返回结果类、统一异常处理类、常用的配置类

qq_35669498的博客 2379

Dbeaver连接TDengine时序数据库

也没啥好总结的,就一句话:Dbeaver真香,而且还是我大JAVA实现的,赞。希望能帮到大家,uping。

zwrlj527的专栏 1902

电商项目功能简述

1.电商行业的技术特点 1.技术性 2.技术范围广 3.分布式 4.高并发,集群,负载均衡,高可用 5.海量数据 6.业务复杂 7.系统安全 2.电商行业的模式 B2B:企业到企业,商家到商家.代表:阿里巴巴 B2C:商家到客户.代表:京东.淘宝商城 C2C:客户到客户.淘宝集市 O2O:线上到线下 3.B2C电商系统架构功能模块 4.B2C电商系统架构功能描述 后台管理系统:管理商品、订单、类...

weixin_45116848的博客 9744

SpringBoot中内置的49个常用工具类

这些工具类涵盖了Java开发中的大部分常见场景,从基础的字符串处理到高级的反射操作,从文件IO到安全加密,从Web开发到性能监控。熟练掌握这些工具类可以显著提高开发效率,减少样板代码,并帮助编写更健壮的应用程序。在日常开发中,建议养成查看Spring和SpringBoot文档的习惯,挖掘更多有用的工具类。

风象南的专栏 906

HFSS求解器背后的数学原理:从麦克斯韦方程到S参数计算

本文深入解析了Ansys HFSS求解器的数学原理,从麦克斯韦方程出发,详细介绍了模式驱动求解(Driven Solution)和本征模求解(Eigenmode)等核心算法。通过有限元方法和模式匹配技术,HFSS将电磁场问题转化为矩阵方程求解,实现S参数计算和场分布分析,为工程师提供精确的电磁仿真工具。

weixin_28314575的博客 464

Springboot中常用工具类

开发中用到的一些基础技术和工具类

m0_73451795的博客 1454

2026.1.9:最新VSCode集成claude插件完美解决方案,跳过登录界面,使用国内Kimi K2进行计费

本文介绍了如何安装配置Claude插件并连接Kimi K2 API的详细步骤:1)搜索安装Claude插件;2)进入设置关闭登录提示;3)在settings.json中添加API配置,包括ANTHROPIC_AUTH_TOKEN(需替换为Kimi API Key)和ANTHROPIC_BASE_URL;4)通过Kimi官网获取API Key。完成配置后即可正常使用该插件。文中配有完整的操作截图指引。

拥抱具身智能,昇腾Ascend C 8721

SAP FICO 科目余额查询表开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

SAP FICO 科目余额查询表开发说明书(包括开发源代码、测试样例)

我好像病了的博客 1041

【SpringBoot实战】常用工具类总结

在SpringBoot项目中,不可避免地需要使用一些工具类来来提升我们的开发效率。常用的工具类有全局异常处理类、统一返回结果类、MyBatisPlus配置类、Swagger配置类等。尽管不同项目的配置类的代码不尽相同,但主要逻辑还是类似的,经过相应修改可以应用于项目中。因此本篇文章总结了SpringBoot项目常用的配置类,并将会持续更新。

Daybreak's blog 1221

PTC Creo软件二次开发:使用C++进行Creo二次开发实战

C++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。由Bjarne Stroustrup在贝尔实验室开发,最初作为C语言的增强版出现,后来发展成为一种独立的语言。C++不仅保留了C语言的高效性和灵活性,还引入了类、模板、命名空间等高级特性,使其成为开发复杂系统和软件的理想选择。

kkchenjj的博客 4042

Spring Boot 内置工具类汇总与讲解

Spring Boot 提供了许多内置工具类,这些类大多继承自 Spring Framework,旨在简化常见开发任务(如配置处理、资源加载、Bean 操作等)。

程序员诚哥 1216

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【宝藏系列】几款好用的 Spring Boot 内置工具类

👉本期为大家带来的是北京大学出版社的《深入浅出Java虚拟机:JVM原理与实战》本书主要以 Java 虚拟机的基本特性及运行原理为中心,深入浅出地分析 JVM 的组成结构和底层实现,介绍了很多性能调优的方案和工具的使用方法。最后还扩展介绍了 JMM 内存模型的实现原理和 Java 编译器的优化机制,让读者不仅可以学习 JVM 的核心技术知识,还能夯实 JVM 调优及代码优化的技术功底。

ws15168689087的博客 8658

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Spring Boot 内置工具类,功能齐全!!

Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启。SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查。断言是一个逻辑判断,用于检查不应该发生的情况。获取当前对象的代理对象。

java_121388的博客 422

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

拒绝重复造轮子!Spring Boot 内置的高效官方工具类

本文介绍了Spring框架中最实用的工具类,涵盖字符串处理、集合操作、对象校验、性能监控等核心功能。StringUtils、CollectionUtils、ObjectUtils等基础工具类提供了空值检查、集合操作等常用方法;StopWatch可用于性能监控,ReflectionUtils简化反射操作;ResourceUtils、FileCopyUtils等工具类处理文件与资源操作。文章还包含模式匹配工具、编码工具及实战应用示例,并给出使用建议和注意事项。这些经过生产验证的工具类能显著提升开发效率,建议优先

weixin_49538406的博客 934

Spring Boot 内置工具类介绍

最近发现同事写了不少重复的工具类,发现其中很多功能,Spring 自带的都有。于是整理了本文,希望能够帮助到大家!

吴名氏的博客 14万+

工具类,Spring Boot 内置丰富的工具类

断言 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 //要求参数object必须为非空(NotNull),否则抛出异常,不予放行 //参数 message 参数用于定制异常信息。 voidnotNull(Objectobject,Stringmessage) //要求参数...

记事本 466

Spring Boot内置工具类

断言 1.断言是一个逻辑判断,用于检查不应该发生的情况 2.Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 3.SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 //要求参数object必须为非空(NotNull),否则抛出异常,不予放行 //参数 message 参数用于定制异常信息。 voidnotNull(Objectobject,Stringmessage) //要求参数必须空(N...

qianfeng_dashuju的博客 342

推荐好用 Spring Boot 内置工具类

往期热门文章:1、面试被问SpringBoot自动装配原理,怎么破?2、五个刁钻的String面试问题及解答3、IntelliJ平台将完全停止使用Log4j4、神操作!我把 3000 行代码重构成 15 行!5、我用Java几分钟处理完30亿个数据...最近发现同事写了不少重复的工具类,发现其中很多功能,Spring 自带的都有。于是整理了本文,希望能够帮助到大家!断言1...

Java之间 222
上一篇: mysql使用mybatisplus自增长id无效的问题
下一篇: mysql 时间格式转换
Aniohevotach
博客等级 码龄7年 13粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值