SpringBoot内置常用工具类
参考链接:https://mp.weixin.qq.com/s/Hxu6_zzk-Z4itNd7ZAzZ3w
1、 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)
2、ReflectionUtils
2.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.2、执行方法
// 在类中查找指定方法 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.3、获取字段
// 在类中查找指定属性 Field findField(Class<?> clazz, String name) // 同上,多提供了属性的类型 Field findField(Class<?> clazz, String name, Class<?> type) // 是否为一个 "public static final" 属性 boolean isPublicStaticFinal(Field field)
2.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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏