断言对象、数组、集合ObjectUtilsStringUtilsCollectionUtils文件、资源、IO流FileCopyUtilsResourceUtilsStreamUtils反射、AOPReflectionUtilsAopUtilsAopContext 最近发现同事写了不少重复的工具类,发现其中很多功能,Spring自带的都有。于是整理了本文,希望能够帮助到大家!断言断言是一个逻辑判断,用于检查不应该发生的情况Assert关键字在JDK1。4中引入,可通过JVM参数enableassertions开启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)对象、数组、集合ObjectUtils获取对象的基本信息获取对象的类名。参数为null时,返回字符串:nullStringnullSafeClassName(Objectobj)参数为null时,返回0intnullSafeHashCode(Objectobject)参数为null时,返回字符串:nullStringnullSafeToString(boolean〔〕array)获取对象HashCode(十六进制形式字符串)。参数为null时,返回0StringgetIdentityHexString(Objectobj)获取对象的类名和HashCode。参数为null时,返回字符串:StringidentityToString(Objectobj)相当于toString()方法,但参数为null时,返回字符串:StringgetDisplayString(Objectobj)判断工具判断数组是否为空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)其他工具方法向参数数组的末尾追加新元素,并返回一个新数组A〔〕addObjectToArray(A〔〕array,Oobj)原生基础类型数组包装类数组Object〔〕toObjectArray(Objectsource)StringUtils字符串判断工具判断字符串是否为null,或。注意,包含空白符的字符串为非空booleanisEmpty(Objectstr)判断字符串是否是以指定内容结束。忽略大小写booleanendsWithIgnoreCase(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)删除开头、结尾和中间的空白符StringtrimAllWhitespace(Stringstr)删除指定子串Stringdelete(StringinString,Stringpattern)删除指定字符(可以是多个)StringdeleteAny(StringinString,StringcharsToDelete)对数组的每一项执行trim()方法String〔〕trimArrayElements(String〔〕array)将URL字符串进行解码StringuriDecode(Stringsource,Charsetcharset)路径相关工具方法解析路径字符串,优化其中的。。StringcleanPath(Stringpath)解析路径字符串,解析出文件名部分StringgetFilename(Stringpath)解析路径字符串,解析出文件后缀名StringgetFilenameExtension(Stringpath)比较两个两个字符串,判断是否是同一个路径。会自动处理路径中的。。booleanpathEquals(Stringpath1,Stringpath2)删除文件路径名中的后缀部分StringstripFilenameExtension(Stringpath)以。作为分隔符,获取其最后一部分Stringunqualify(StringqualifiedName)以指定字符作为分隔符,获取其最后一部分Stringunqualify(StringqualifiedName,charseparator)CollectionUtils集合判断工具判断ListSet是否为空booleanisEmpty(C?collection)判断Map是否为空booleanisEmpty(M?,?map)判断ListSet中是否包含某个对象booleancontainsInstance(C?collection,Objectelement)以迭代器的方式,判断ListSet中是否包含某个对象booleancontains(I?iterator,Objectelement)判断ListSet是否包含某些对象中的任意一个booleancontainsAny(C?source,C?candidates)判断ListSet中的每个元素是否唯一。即ListSet中不存在重复元素booleanhasUniqueObject(C?collection)集合操作工具将Array中的元素都添加到ListSet中EvoidmergeArrayIntoCollection(Objectarray,CollectionEcollection)将Properties中的键值对都添加到Map中K,VvoidmergePropertiesIntoMap(Propertiesprops,MapK,Vmap)返回List中最后一个元素TTlastElement(ListTlist)返回Set中最后一个元素TTlastElement(SetTset)返回参数candidates中第一个存在于参数source中的元素EEfindFirstMatch(C?source,CollectionEcandidates)返回ListSet中指定类型的元素。TTfindValueOfType(C?collection,ClassTtype)返回ListSet中指定类型的元素。如果第一种类型未找到,则查找第二种类型,以此类推ObjectfindValueOfType(C?collection,C?〔〕types)返回ListSet中元素的类型C?findCommonElementType(C?collection)文件、资源、IO流FileCopyUtils输入从文件中读入到字节数组中byte〔〕copyToByteArray(Filein)从输入流中读入到字节数组中byte〔〕copyToByteArray(InputStreamin)从输入流中读入到字符串中StringcopyToString(Readerin)输出从字节数组到文件voidcopy(byte〔〕in,Fileout)从文件到文件intcopy(Filein,Fileout)从字节数组到输出流voidcopy(byte〔〕in,OutputStreamout)从输入流到输出流intcopy(InputStreamin,OutputStreamout)从输入流到输出流intcopy(Readerin,Writerout)从字符串到输出流voidcopy(Stringin,Writerout)ResourceUtils从资源路径获取文件判断字符串是否是一个合法的URL字符串。staticbooleanisUrl(StringresourceLocation)获取URLstaticURLgetURL(StringresourceLocation)获取文件(在JAR包内无法正常使用,需要是一个独立的文件)staticFilegetFile(StringresourceLocation)Resource文件系统资源D:。。。FileSystemResourceURL资源,如file:。。。http:。。。UrlResource类路径下的资源,classpth:。。。ClassPathResourceWeb容器上下文中的资源(jar包、war包)ServletContextResource判断资源是否存在booleanexists()从资源中获得File对象FilegetFile()从资源中获得URI对象URIgetURI()从资源中获得URI对象URLgetURL()获得资源的InputStreamInputStreamgetInputStream()获得资源的描述信息StringgetDescription()StreamUtils输入voidcopy(byte〔〕in,OutputStreamout)intcopy(InputStreamin,OutputStreamout)voidcopy(Stringin,Charsetcharset,OutputStreamout)longcopyRange(InputStreamin,OutputStreamout,longstart,longend)输出byte〔〕copyToByteArray(InputStreamin)StringcopyToString(InputStreamin,Charsetcharset)舍弃输入流中的内容intdrain(InputStreamin)反射、AOPReflectionUtils获取方法在类中查找指定方法MethodfindMethod(C?clazz,Stringname)同上,额外提供方法参数类型作查找条件MethodfindMethod(C?clazz,Stringname,C?。。。paramTypes)获得类中所有方法,包括继承而来的Method〔〕getAllDeclaredMethods(C?leafClass)在类中查找指定构造方法ConstructorTaccessibleConstructor(ClassTclazz,C?。。。parameterTypes)是否是equals()方法booleanisEqualsMethod(Methodmethod)是否是hashCode()方法booleanisHashCodeMethod(Methodmethod)是否是toString()方法booleanisToStringMethod(Methodmethod)是否是从Object类继承而来的方法booleanisObjectMethod(Methodmethod)检查一个方法是否声明抛出指定异常booleandeclaresException(Methodmethod,C?exceptionType)执行方法执行方法ObjectinvokeMethod(Methodmethod,Objecttarget)同上,提供方法参数ObjectinvokeMethod(Methodmethod,Objecttarget,Object。。。args)取消Java权限检查。以便后续执行该私有方法voidmakeAccessible(Methodmethod)取消Java权限检查。以便后续执行私有构造方法voidmakeAccessible(C?ctor)获取字段在类中查找指定属性FieldfindField(C?clazz,Stringname)同上,多提供了属性的类型FieldfindField(C?clazz,Stringname,C?type)是否为一个publicstaticfinal属性booleanisPublicStaticFinal(Fieldfield)设置字段获取target对象的field属性值ObjectgetField(Fieldfield,Objecttarget)设置target对象的field属性值,值为valuevoidsetField(Fieldfield,Objecttarget,Objectvalue)同类对象属性对等赋值voidshallowCopyFieldState(Objectsrc,Objectdest)取消Java的权限控制检查。以便后续读写该私有属性voidmakeAccessible(Fieldfield)对类的每个属性执行callbackvoiddoWithFields(C?clazz,ReflectionUtils。FieldCallbackfc)同上,多了个属性过滤功能。voiddoWithFields(C?clazz,ReflectionUtils。FieldCallbackfc,ReflectionUtils。FieldFilterff)同上,但不包括继承而来的属性voiddoWithLocalFields(C?clazz,ReflectionUtils。FieldCallbackfc)AopUtils判断代理类型判断是不是Spring代理对象booleanisAopProxy()判断是不是jdk动态代理对象isJdkDynamicProxy()判断是不是CGLIB代理对象booleanisCglibProxy()获取被代理对象的class获取被代理的目标classC?getTargetClass()AopContext获取当前对象的代理对象ObjectcurrentProxy()