当前位置: 首页 > 后端技术 > Java

不用再自己写工具类了,SpringBoot什么都有内置工具类,..

时间:2023-04-02 00:59:07 Java

作者:CadeCode\地址:https://juejin.cn/post/704340...断言断言是一种逻辑判断,用来检查什么不应该发生。JDK1.4引入了Assert关键字,可以传递JVM参数-enableassertionsenableSpringBoot提供了Assert断言工具类,通常用于数据合法性校验//参数对象必须为非空(NotNull),否则会抛出异常,不会释放//参数message参数,用于自定义异常信息。voidnotNull(Objectobject,Stringmessage)//要求参数必须为空(Null),否则会抛出异常,不会被“释放”。//与notNull()方法的断言规则相反voidisNull(Objectobject,Stringmessage)//要求参数必须为真(True),否则会抛出异常,不会被“释放”.voidisTrue(booleanexpression,Stringmessage)//要求参数(List/Set)必须非空(NotEmpty),否则抛出异常,不会被释放voidnotEmpty(Collectioncollection,Stringmessage)//要求参数(String)必须有长度(即NotEmpty),否则会抛出异常,不会被释放voidhasLength(Stringtext,Stringmessage)//参数(String)必须有内容(ie,NotBlank),否则会抛出异常,不被释放voidhasText(Stringtext,Stringmessage)//要求参数为指定类型的实例,否则会抛出异常,不会被释放被释放voidisInstanceOf(Classtype,Objectobj,Stringmessage)//要求参数`subType`必须是参数superType的子类或实现类,否则会抛出异常,不释放。voidisAssignable(ClasssuperType,ClasssubType,Stringmessage)Object,array,collectionObjectUtils获取对象的基本信息//获取对象的类名。当参数为空时,返回字符串:"null"StringnullSafeClassName(Objectobj)//当参数为空时,返回0intnullSafeHashCode(Objectobject)//当参数为空时,返回字符串:"null"StringnullSafeToString(boolean[]array)//获取对象的HashCode(十六进制字符串)。当参数为null时,返回0StringgetIdentityHexString(Objectobj)//获取对象的类名和HashCode。当参数为null时,返回string:""StringidentityToString(Objectobj)//相当于toString()方法,但是当参数为null时,返回string:""StringgetDisplayString(Objectobj)判断工具//判断数组是否为空booleanisEmpty(Object[]array)//判断参数对象是否为数组booleanisArray(Objectobj)//判断数组是否包含指定元素booleancontainsElement(Object[]array,Objectelement)//相等,或者都为null时,返回truebooleannullSafeEquals(Objecto1,Objecto2)/*判断参数对象是否为空,判断标准为:Optional:Optional.empty()Array:length==0CharSequence:length==0Collection:集合。isEmpty()Map:Map.isEmpty()*/booleanisEmpty(Objectobj)其他工具方法//在参数数组末尾追加新元素,返回新数组A[]addObjectToArray(A[]array,Oobj)//原生基本类型数组-->包装类数组Object[]toObjectArray(Objectsource)StringUtils字符串判断工具//判断字符串是否为null或""。注意包含空格的字符串非空booleanisEmpty(Objectstr)//判断字符串是否以指定内容结尾。IgnorecasebooleanendsWithIgnoreCase(Stringstr,Stringsuffix)//判断字符串是否以指定内容开头。忽略大小写booleanstartsWithIgnoreCase(Stringstr,Stringprefix)//是否包含空格booleancontainsWhitespace(Stringstr)//判断字符串是否为空且长度不为0,即NotEmptybooleanhasLength(CharSequencestr)//判断字符字符串是否包含实际内容,即不只包含空白字符,即NotBlankbooleanhasText(CharSequencestr)//判断字符串的指定索引是否包含子字符串。booleansubstringMatch(CharSequencestr,intindex,CharSequencesubstring)//统计指定子串在字符串中出现的次数intcountOccurrencesOf(Stringstr,Stringsub)字符串操作工具//查找并替换指定子串Stringreplace(StringinString,StringoldPattern,StringnewPattern)//去除尾部的特定字符StringtrimTrailingCharacter(Stringstr,chartrailingCharacter)//去除头部的特定字符StringtrimLeadingCharacter(Stringstr,charleadingCharacter)//去除头部的空白字符StringtrimLeadingWhitespace(Stringstr)//去除头部的空白字符StringtrimTrailingWhitespace(Stringstr)//去除头部和尾部的空白字符StringtrimWhitespace(Stringstr)//去除首尾空白字符middleStringtrimAllWhitespace(Stringstr)//删除指定子串Stringdelete(StringinString,Stringpattern)//删除指定字符(可以是多个)StringdeleteAny(StringinString,StringcharsToDelete)//执行trim()方法在数组的每一项上String[]trimArrayElements(String[]array)//解码URL字符串StringuriDecode(Stringsource,Charsetcharset)路径相关的工具方法//解析路径字符串并优化“..”字符串cleanPath(Stringpath)//解析路径字符串并解析出文件名部分StringgetFilename(Stringpath)//解析路径字符串并解析出FileextensionStringgetFilenameExtension(Stringpath)//比较两个字符串判断是否相同路径会自动处理路径中的“..”booleanpathEquals(Stringpath1,Stringpath2)//删除文件路径名的后缀partinStringstripFilenameExtension(Stringpath)//使用“.作为分隔符获取最后一部分Stringunqualify(StringqualifiedName)//使用指定字符作为分隔符获取最后一部分Stringunqualify(StringqualifiedName,charseparator)CollectionUtils集合判断工具//判断List/Set是否为空booleanisEmpty(Collectioncollection)//判断Map是否为空booleanisEmpty(Mapmap)//判断List/Set是否为空containsAnobjectbooleancontainsInstance(Collectioncollection,Objectelement)//使用迭代器判断一个对象是否包含在List/Set中booleancontains(Iteratoriterator,Objectelement)//判断List/是否theSetcontainsanyoneofsomeobjectsbooleancontainsAny(Collectionsource,Collectioncandidates)//判断List/Set中的每个元素是否唯一。即List/Set中没有重复元素booleanhasUniqueObject(Collectioncollection)集合操作工具//将Array中的所有元素添加到List/SetvoidmergeArrayIntoCollection(Objectarray,Collectioncollection)//将Properties中的键值对添加到MapvoidmergePropertiesIntoMap(Propertiesprops,Mapmap)//返回List中的最后一个元素TlastElement(Listlist)//返回集合中的最后一个元素TlastElement(Setset)//返回参数源中存在的候选参数中的第一个元素EfindFirstMatch(Collectionsource,Collectioncandidates)//返回List/Set中指定类型的元素。TfindValueOfType(Collectioncollection,Classtype)//返回List/Set中指定类型的元素。如果第一种类型没有找到,则寻找第二种类型,依此类推ObjectfindValueOfType(Collectioncollection,Class[]types)//返回List/Set中元素的类型ClassfindCommonElementType(Collectioncollection)file,resource,IOstreamFileCopyUtilsinput//从文件读取到字节数组byte[]copyToByteArray(Filein)//从输入流读取到字节数组byte[]copyToByteArray(InputStreamin)//从输入流读入字符串StringcopyToString(Readerin)output//从字节数组到文件voidcopy(byte[]in,Fileout)//从文件到文件intcopy(Filein,Fileout)//从字节数组到输出流voidcopy(byte[]in,OutputStreamout)//从输入流到输出流intcopy(InputStreamin,OutputStreamout)//从输入流到输出流intcopy(Readerin,Writerout)//从字符串到输出流voidcopy(Stringin,Writerout)ResourceUtilsgetfilefromresourcepath//判断字符串是否为合法的URL字符串。staticbooleanisUrl(StringresourceLocation)//获取URLstaticURLgetURL(StringresourceLocation)//获取文件(不能在JAR包中正常使用,需要是独立文件)staticFilegetFile(StringresourceLocation)Resource//文件系统resourceD:\...FileSystemResource//URL资源,如file://...http://...UrlResource//类路径下的资源,classpth:...ClassPathResource//上下文中的资源Web容器的(jar包,war包)ServletContextResource//判断资源是否存在booleanexists()//从资源中获取File对象FilegetFile()//从资源中获取URI对象URIgetURI()//从资源URL获取URI对象getURL()//获取资源的InputStreamInputStreamgetInputStream()//获取资源的描述StringgetDescription()StreamUtilsinputvoidcopy(byte[]in,OutputStreamout)intcopy(InputStreamin,OutputStreamout)voidcopy(Stringin,Charsetcharset,OutputStreamout)longcopyRange(InputStreamin,OutputStreamout,longstart,longend)输出字节[]copyToByteArray(InputStreamin)StringcopyToString(InputStreamin,Charsetcharset)//丢弃输入流中的内容intdrain(InputStreamin)reflection,AOPReflectionUtils获取方法//在类中查找指定方法MethodfindMethod(Class<?>clazz,Stringname)//同上,额外提供方法参数类型作为查找条件methodfindMethod(Classclazz,Stringname,Class...paramTypes)//获取方法中的所有方法class,includingInheritedMethod[]getAllDeclaredMethods(ClassleafClass)//在类中查找指定的构造函数ConstructoraccessibleConstructor(Classclazz,Class...parameterTypes)//是否是equals()methodbooleanisEqualsMethod(Methodmethod)//是否是hashCode()方法booleanisHashCodeMethod(Methodmethod)//是否是toString()方法booleanisToStringMethod(Methodmethod)//是否是继承自Object的方法classbooleanisObjectMethod(Methodmethod)//检查方法是否被声明为抛出指定的异常booleandeclaresException(Methodmethod,ClassexceptionType)Executemethod//执行方法ObjectinvokeMethod(Methodmethod,Objecttarget)//同如上,提供方法参数ObjectinvokeMethod(Methodmethod,Objecttarget,Object...args)//为后续执行该私有方法取消Java权限检查voidmakeAccessible(Methodmethod)//取消Java权限检查。为了执行私有构造函数voidmakeAccessible(Constructorctor)获取字段//在类Field中查找指定属性findField(Classclazz,Stringname)//同上,更多类型提供属性FieldfindField(Classclazz,Stringname,Classtype)//是否为“publicstaticfinal”属性booleanisPublicStaticFinal(Fieldfield)设置字段//获取字段属性值目标对象ObjectgetField(Fieldfield,Objecttarget)//设置目标对象的field属性值,值为valuevoidsetField(Fieldfield,Objecttarget,Objectvalue)//类似对象属性的等价赋值voidshallowCopyFieldState(Objectsrc,Objectdest)//取消Javaexamine的权限控制。用于后续私有属性的读写voidmakeAccessible(Fieldfield)//对类的每个属性执行回调voiddoWithFields(Classclazz,ReflectionUtils.FieldCallbackfc)//同上,多了一个属性过滤功能。voiddoWithFields(Classclazz,ReflectionUtils.FieldCallbackfc,ReflectionUtils.FieldFilterff)//同上,但不包括继承属性voiddoWithLocalFields(Classclazz,ReflectionUtils.FieldCallbackfc)AopUtils判断代理类型//判断是否为Spring代理对象booleanisAopProxy()//判断是否为jdk动态代理对象isJdkDynamicProxy()//判断是否为CGLIB代理对象booleanisCglibProxy()获取代理对象的类//获取targetclassClassgetTargetClass()AopContext获取当前对象的代理对象ObjectcurrentProxy()近期热点文章推荐:1.1000+Java面试题及答案(2022最新版)2.惊艳!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!