别再自己瞎写工具类了,SpringBoot内置工具类应有尽有
背景
最近发现同事写了不少重复的工具类,发现其中很多功能,SpringBoot自带的都有。于是整理了本文,希望能够帮助到大家!断言
1。断言是一个逻辑判断,用于检查不应该发生的情况2。Assert关键字在JDK1。4中引入,可通过JVM参数enableassertions开启3。SpringBoot中提供了Assert断言工具类,通常用于数据合法性检查要求参数object必须为非空(NotNull),否则抛出异常,不予放行参数message参数用于定制异常信息。voidnotNull(Objectobject,Stringmessage)要求参数必须空(Null),否则抛出异常,不予放行。和notNull()方法断言规则相反voidisNull(Objectobject,Stringmessage)要求参数必须为真(True),否则抛出异常,不予放行。voidisTrue(booleanexpression,Stringmessage)要求参数(ListSet)必须非空(NotEmpty),否则抛出异常,不予放行voidnotEmpty(Collectioncollection,Stringmessage)要求参数(String)必须有长度(即,NotEmpty),否则抛出异常,不予放行voidhasLength(Stringtext,Stringmessage)要求参数(String)必须有内容(即,NotBlank),否则抛出异常,不予放行voidhasText(Stringtext,Stringmessage)要求参数是指定类型的实例,否则抛出异常,不予放行voidisInstanceOf(Classtype,Objectobj,Stringmessage)要求参数subType必须是参数superType的子类或实现类,否则抛出异常,不予放行voidisAssignable(ClasssuperType,ClasssubType,Stringmessage)
磊哥准备了新版300套书籍(一套20本,重13斤,近4000页),只要你加入,知识星球,就免费包邮送一套(20本纸质版面试题)给你!内测,首发300套,不要错过
对象、数组、集合ObjectUtils
1。获取对象的基本信息获取对象的类名。参数为null时,返回字符串:nullStringnullSafeClassName(Objectobj)参数为null时,返回0intnullSafeHashCode(Objectobject)参数为null时,返回字符串:nullStringnullSafeToString(boolean〔〕array)获取对象HashCode(十六进制形式字符串)。参数为null时,返回0StringgetIdentityHexString(Objectobj)获取对象的类名和HashCode。参数为null时,返回字符串:StringidentityToString(Objectobj)相当于toString()方法,但参数为null时,返回字符串:StringgetDisplayString(Objectobj)
2。判断工具判断数组是否为空booleanisEmpty(Object〔〕array)判断参数对象是否是数组booleanisArray(Objectobj)判断数组中是否包含指定元素booleancontainsElement(Object〔〕array,Objectelement)相等,或同为null时,返回truebooleannullSafeEquals(Objecto1,Objecto2)判断参数对象是否为空,判断标准为:Optional:Optional。empty()Array:length0CharSequence:length0Collection:Collection。isEmpty()Map:Map。isEmpty()booleanisEmpty(Objectobj)
3。其他工具方法向参数数组的末尾追加新元素,并返回一个新数组A〔〕addObjectToArray(A〔〕array,Oobj)原生基础类型数组包装类数组Object〔〕toObjectArray(Objectsource)StringUtils
1。字符串判断工具判断字符串是否为null,或。注意,包含空白符的字符串为非空booleanisEmpty(Objectstr)判断字符串是否是以指定内容结束。忽略大小写booleanendsWithIgnoreCase(Stringstr,Stringsuffix)判断字符串是否已指定内容开头。忽略大小写booleanstartsWithIgnoreCase(Stringstr,Stringprefix)是否包含空白符booleancontainsWhitespace(Stringstr)判断字符串非空且长度不为0,即,NotEmptybooleanhasLength(CharSequencestr)判断字符串是否包含实际内容,即非仅包含空白符,也就是NotBlankbooleanhasText(CharSequencestr)判断字符串指定索引处是否包含一个子串。booleansubstringMatch(CharSequencestr,intindex,CharSequencesubstring)计算一个字符串中指定子串的出现次数intcountOccurrencesOf(Stringstr,Stringsub)
2。字符串操作工具查找并替换指定子串Stringreplace(StringinString,StringoldPattern,StringnewPattern)去除尾部的特定字符StringtrimTrailingCharacter(Stringstr,chartrailingCharacter)去除头部的特定字符StringtrimLeadingCharacter(Stringstr,charleadingCharacter)去除头部的空白符StringtrimLeadingWhitespace(Stringstr)去除头部的空白符StringtrimTrailingWhitespace(Stringstr)去除头部和尾部的空白符StringtrimWhitespace(Stringstr)删除开头、结尾和中间的空白符StringtrimAllWhitespace(Stringstr)删除指定子串Stringdelete(StringinString,Stringpattern)删除指定字符(可以是多个)StringdeleteAny(StringinString,StringcharsToDelete)对数组的每一项执行trim()方法String〔〕trimArrayElements(String〔〕array)将URL字符串进行解码StringuriDecode(Stringsource,Charsetcharset)
3。路径相关工具方法解析路径字符串,优化其中的。。StringcleanPath(Stringpath)解析路径字符串,解析出文件名部分StringgetFilename(Stringpath)解析路径字符串,解析出文件后缀名StringgetFilenameExtension(Stringpath)比较两个两个字符串,判断是否是同一个路径。会自动处理路径中的。。booleanpathEquals(Stringpath1,Stringpath2)删除文件路径名中的后缀部分StringstripFilenameExtension(Stringpath)以。作为分隔符,获取其最后一部分Stringunqualify(StringqualifiedName)以指定字符作为分隔符,获取其最后一部分Stringunqualify(StringqualifiedName,charseparator)CollectionUtils
1。集合判断工具判断ListSet是否为空booleanisEmpty(Collectionlt;?collection)判断Map是否为空booleanisEmpty(Maplt;?,?map)判断ListSet中是否包含某个对象booleancontainsInstance(Collectionlt;?collection,Objectelement)以迭代器的方式,判断ListSet中是否包含某个对象booleancontains(Iteratorlt;?iterator,Objectelement)判断ListSet是否包含某些对象中的任意一个booleancontainsAny(Collectionlt;?source,Collectionlt;?candidates)判断ListSet中的每个元素是否唯一。即ListSet中不存在重复元素booleanhasUniqueObject(Collectionlt;?collection)
2。集合操作工具将Array中的元素都添加到ListSet中EvoidmergeArrayIntoCollection(Objectarray,CollectionEcollection)将Properties中的键值对都添加到Map中K,VvoidmergePropertiesIntoMap(Propertiesprops,MapK,Vmap)返回List中最后一个元素TTlastElement(ListTlist)返回Set中最后一个元素TTlastElement(SetTset)返回参数candidates中第一个存在于参数source中的元素EEfindFirstMatch(Collectionlt;?source,CollectionEcandidates)返回ListSet中指定类型的元素。TTfindValueOfType(Collectionlt;?collection,ClassTtype)返回ListSet中指定类型的元素。如果第一种类型未找到,则查找第二种类型,以此类推ObjectfindValueOfType(Collectionlt;?collection,Classlt;?〔〕types)返回ListSet中元素的类型Classlt;?findCommonElementType(Collectionlt;?collection)文件、资源、IO流FileCopyUtils
1。输入从文件中读入到字节数组中byte〔〕copyToByteArray(Filein)从输入流中读入到字节数组中byte〔〕copyToByteArray(InputStreamin)从输入流中读入到字符串中StringcopyToString(Readerin)
2。输出从字节数组到文件voidcopy(byte〔〕in,Fileout)从文件到文件intcopy(Filein,Fileout)从字节数组到输出流voidcopy(byte〔〕in,OutputStreamout)从输入流到输出流intcopy(InputStreamin,OutputStreamout)从输入流到输出流intcopy(Readerin,Writerout)从字符串到输出流voidcopy(Stringin,Writerout)ResourceUtils
1。从资源路径获取文件判断字符串是否是一个合法的URL字符串。staticbooleanisUrl(StringresourceLocation)获取URLstaticURLgetURL(StringresourceLocation)获取文件(在JAR包内无法正常使用,需要是一个独立的文件)staticFilegetFile(StringresourceLocation)
2。Resource文件系统资源D:。。。FileSystemResourceURL资源,如file:。。。http:。。。UrlResource类路径下的资源,classpth:。。。ClassPathResourceWeb容器上下文中的资源(jar包、war包)ServletContextResource判断资源是否存在booleanexists()从资源中获得File对象FilegetFile()从资源中获得URI对象URIgetURI()从资源中获得URI对象URLgetURL()获得资源的InputStreamInputStreamgetInputStream()获得资源的描述信息StringgetDescription()
StreamUtils
1。输入voidcopy(byte〔〕in,OutputStreamout)intcopy(InputStreamin,OutputStreamout)voidcopy(Stringin,Charsetcharset,OutputStreamout)longcopyRange(InputStreamin,OutputStreamout,longstart,longend)
2。输出byte〔〕copyToByteArray(InputStreamin)StringcopyToString(InputStreamin,Charsetcharset)舍弃输入流中的内容intdrain(InputStreamin)反射、AOPReflectionUtils
1。获取方法在类中查找指定方法MethodfindMethod(Classlt;?clazz,Stringname)同上,额外提供方法参数类型作查找条件MethodfindMethod(Classlt;?clazz,Stringname,Classlt;?。。。paramTypes)获得类中所有方法,包括继承而来的Method〔〕getAllDeclaredMethods(Classlt;?leafClass)在类中查找指定构造方法ConstructorTaccessibleConstructor(ClassTclazz,Classlt;?。。。parameterTypes)是否是equals()方法booleanisEqualsMethod(Methodmethod)是否是hashCode()方法booleanisHashCodeMethod(Methodmethod)是否是toString()方法booleanisToStringMethod(Methodmethod)是否是从Object类继承而来的方法booleanisObjectMethod(Methodmethod)检查一个方法是否声明抛出指定异常booleandeclaresException(Methodmethod,Classlt;?exceptionType)
2。执行方法执行方法ObjectinvokeMethod(Methodmethod,Objecttarget)同上,提供方法参数ObjectinvokeMethod(Methodmethod,Objecttarget,Object。。。args)取消Java权限检查。以便后续执行该私有方法voidmakeAccessible(Methodmethod)取消Java权限检查。以便后续执行私有构造方法voidmakeAccessible(Constructorlt;?ctor)
3。获取字段在类中查找指定属性FieldfindField(Classlt;?clazz,Stringname)同上,多提供了属性的类型FieldfindField(Classlt;?clazz,Stringname,Classlt;?type)是否为一个publicstaticfinal属性booleanisPublicStaticFinal(Fieldfield)
4。设置字段获取target对象的field属性值ObjectgetField(Fieldfield,Objecttarget)设置target对象的field属性值,值为valuevoidsetField(Fieldfield,Objecttarget,Objectvalue)同类对象属性对等赋值voidshallowCopyFieldState(Objectsrc,Objectdest)取消Java的权限控制检查。以便后续读写该私有属性voidmakeAccessible(Fieldfield)对类的每个属性执行callbackvoiddoWithFields(Classlt;?clazz,ReflectionUtils。FieldCallbackfc)同上,多了个属性过滤功能。voiddoWithFields(Classlt;?clazz,ReflectionUtils。FieldCallbackfc,ReflectionUtils。FieldFilterff)同上,但不包括继承而来的属性voiddoWithLocalFields(Classlt;?clazz,ReflectionUtils。FieldCallbackfc)
AopUtils1。判断代理类型判断是不是Spring代理对象booleanisAopProxy()判断是不是jdk动态代理对象isJdkDynamicProxy()判断是不是CGLIB代理对象booleanisCglibProxy()
2。获取被代理对象的class获取被代理的目标classClasslt;?getTargetClass()AopContext
1。获取当前对象的代理对象ObjectcurrentProxy()
描写校园的柳树作文描写校园的柳树作文一:校园中有两棵柳树,它们带给我们欢乐和美丽的环境!春天来了,春姑娘踏着轻轻地脚步来到了人间,温暖了大地,轻吻了小草。小草从梦中醒来,发现还在黑黑……
豆芽菜和浣熊一起打雪仗作文天气很冷,又刮风又下雪。风累了,便停下来了。雪像一条永流不息的河流,还在下。豆芽菜不顾寒冷,从家里出来在雪地中堆了个雪人。浣熊从窗户上看见雪地里的豆芽菜,也从家里出来。可……
我的姥姥作文450字我的姥姥名叫高宜静,今年70岁。她长着一双小眼睛,笑起来眯成一条缝。高高的鼻梁上经常架着一副老花镜。还有一张大大的嘴巴,她留着一头灰白的卷发,染过颜色之后就变得乌黑亮丽,非常漂……
求问,荣耀X10和摩托S30之间选哪个?荣耀X10采用麒麟820处理器,6。63英寸LCD全面屏,90Hz刷新率,前置16MP升降摄像头,后置3摄,40MP超感光主摄(IMX600)8MP超广角2MP微距,4300m……
马斯克的手机直接和星链互联,会不会颠覆现在的手机体系?一个不能在建筑物内打电话的手机,一个网速很低,功耗很大的手机,一个摩托罗拉90年代玩剩下的伟大计划,年轻人要多学一下历史,多学一下常识,别让一个通讯行外人带偏了一定会,马……
公司拿我身份证办电话卡,已经离职了,卡被拿走给另外一个同事用简单,那你的身份证去补个卡,原来的卡就用不了咯你去找运营商补卡注销都行。这是多么傻的人才会问这个!自己拿着自己的身份证去营业厅注销不就行了?!去补卡就可以了,……
在柬埔寨市场购物,商人愿意收美元或本国瑞尔,却不收人民币呢?这个问题出的比较简单,答案也很简单,就是因为我们是发展中国家,人民币不是世界主要货币,所以我们出国旅游时候,一般国家只收本国货币和美元,不会收人民币的,就是收到人民币也无法消费……
早高FENG苹果发布BeatsStudioBuds固件更新英苹果发布BeatsStudioBuds固件更新苹果今天为BeatsStudioBuds发布了新的10M359固件更新,在今天的固件更新之前,BeatsStudioBuds……
快乐的中秋节话题作文10篇吃一口月饼,甜在心里;品一杯美酒,醉在心里;望一眼明月,美在心里。中秋之夜家人聚,知心的话儿说不尽。但愿年年有此时,合家欢乐庆团圆!下面是品学网小编为大家整理的快乐的中秋节话题……
红米note11新版今日发布改用骁龙处理器前几天,小米官方已经在社交平台宣布,将在北京时间1月26日晚上8点左右推出新品RedmiNote11系列国际版。据悉,这次的国际版与此前策略不同,采用了完全不同的配置方案……
梦游海底世界抒情作文真倒霉!早不病,晚不病,偏偏在这两天病了,这不,同学的电话打来了,告诉我明天要秋游,不用说,妈妈肯定不会让我去的。天亮了,我睁开眼睛,看了看钟,六点半,同学们现在肯定都在……
东方财富2022年新能源汽车仍将高速增长智通财经APP获悉,东方财富发布研究报告称,2021年,全球新能源汽车高速增长,中国、欧洲、美国的数据都极为耀眼,全年销量接近100。2022年,中国新能源汽车补贴规模不设上限……
致我的易烊千玺的950字作文易烊千玺先生:你好,想了很久,最终还是选了这个词称呼你,毕竟,你是一个快要成年的男孩子了。从1x年5月31日到现在,喜欢你已经快四年了,这四年从最初的喜欢再到深爱最……
竞选宿舍长的发言稿600字尊敬的各位老师,亲爱的同学们:大家上午好!今天,我要竞选的职位是宿舍长,因为每次回宿舍,总会看见宿舍长来不及脱衣服,就赶紧走到岗位值岗,监督同学打水洗漱,而且,宿舍……
流泪的工具箱我注视着那盒上面早已被灰尘覆盖的工具箱,陷入了沉思。儿子吃饭喽!我最讨厌每天晚上这打断我思考的喧哗。来了来了。在我走出那小黑屋前,我又看了它一眼。我想起了爷爷的脸庞。那是……
二年级冰雕展的作文1冰雕展今天下雨,我和爸爸妈妈还是一起去参观了冰刻出来的千姿百态冰雕作品。有蜡烛、滑滑梯、雪屋、大风车、水果篮、酒杯、汽车、城墙、米老鼠、老猎人、东北虎、我第一次坐……
毕业典礼九年级作文毕业了。看着眼前鲜红的证书,笑了笑,三年过了。那么,我也长大了。这是我在台上说的,大概没什么惹人注目。前几天忙了几小时的。稿子到了手中,看着眼下几千名学生,只……
爱我的父亲作文有人说过父爱如山,虽然父爱不想母爱那样细致,但父爱是那样的伟大;艰辛。当你犯了错误时时是谁在你身旁给你讲大道理,教你为人处事;开导你。不错那就是你的父亲,在你身后支撑着这个家的……
四年级春天的田野作文300字十篇在日常的学习、工作、生活中,大家都不可避免地要接触到作文吧,作文是人们以书面形式表情达意的言语活动。你写作文时总是无从下笔?以下是小编整理的四年级春天的田野作文300字10篇,……
十五岁的我,青春无悔十五岁的我处在生命中最叛逆的时刻,或感伤,或兴奋。像很多青春期的孩子一样,也想过离家出走,想过逃学,但终被现实的残酷打败。青春,一个在茫茫词海中不起眼的词语,但它却是一个人的生……
我的未来我的路作文1000字每个人都会有自己今后的道路。可能会有坎坷,亦或一帆风顺。我认为我的人生道路上不可能一帆风顺,难免会有苦难、挫折。但是,没有失败,何来成功呢?失败也可以启发你,让你做得更好……
云南昆明的自然风光作文昆明是举世闻名的春之都、花之城,是人们向往的地方。以下是小编整理的相关范文,希望对你有帮助。云南昆明的自然风光作文【篇一】在我的生活中,我去过很多地方,有群山相连的普者黑……
在夏日的渡口,跌入冬日的港湾作文昕丹还未爬上树梢,晨澜里,紫罗兰花开的惊艳,奏响了破晓的晨眠曲,我站在风波里,张开双臂,闭上睫羽,拥娴静泠怀,感受流风撩拨过细碎发丝的暖腻,我的舞姿轻笼起绝代霜华,那刻,我好美……
2017年中考写作素材必备下面时候语文迷网为大家带来的关于古今中外的著名人物的素材,供大家写作时参考。1成吉思汗:中国历史上,有这样一位叱咤风云的人物:他戎马倥偬,征战一生,一把弯弓缔造蒙古汗国,……