java判断数组是否为空的方法(数组未赋值是空还是0)

2. 判断工具

// 判断数组是否为空booleanisEmpty(Object[] array)// 判断参数对象是否是数组booleanisArray(Objectobj)// 判断数组中是否包含指定元素booleancontainsElement(Object[] array,Objectelement)// 相等,或同为 null时,返回 truebooleannullSafeEquals(Objecto1,Objecto2)/*判断参数对象是否为空,判断标准为:Optional: Optional.empty()Array: length == 0CharSequence: length == 0Collection: Collection.isEmpty()Map: Map.isEmpty()*/booleanisEmpty(Objectobj)
java判断数组是否为空的方法(数组未赋值是空还是0)

3. 其他工具方法

// 向参数数组的末尾追加新元素,并返回一个新数组<A, O extendsA>A[]addObjectToArray(A[]array, O obj)// 原生基础类型数组 –> 包装类数组Object[]toObjectArray(Objectsource)StringUtils1. 字符串判断工具// 判断字符串是否为 null,或 “”。注意,包含空白符的字符串为非空booleanisEmpty(Objectstr)// 判断字符串是否是以指定内容结束。忽略大小写booleanendsWithIgnoreCase(Stringstr,Stringsuffix)// 判断字符串是否已指定内容开头。忽略大小写booleanstartsWithIgnoreCase(Stringstr,Stringprefix)// 是否包含空白符booleancontainsWhitespace(Stringstr)// 判断字符串非空且长度不为 0,即,Not EmptybooleanhasLength(CharSequence str)// 判断字符串是否包含实际内容,即非仅包含空白符,也就是 Not BlankbooleanhasText(CharSequence str)// 判断字符串指定索引处是否包含一个子串。booleansubstringMatch(CharSequence str, int index, CharSequence substring)// 计算一个字符串中指定子串的出现次数int countOccurrencesOf(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, char separator)CollectionUtils

1. 集合判断工具

// 判断 List/Set是否为空booleanisEmpty(Collection<?> collection)// 判断Map是否为空booleanisEmpty(Map<?,?>map)// 判断List/Set中是否包含某个对象booleancontainsInstance(Collection<?> collection,Objectelement)// 以迭代器的方式,判断List/Set中是否包含某个对象booleancontains(Iterator<?> iterator,Objectelement)// 判断List/Set是否包含某些对象中的任意一个booleancontainsAny(Collection<?>source, Collection<?> candidates)// 判断List/Set中的每个元素是否唯一。即List/Set中不存在重复元素booleanhasUniqueObject(Collection<?> collection)

2. 集合操作工具// 将 Array 中的元素都添加到 List/Set中<E>voidmergeArrayIntoCollection(Objectarray, Collection<E> collection)// 将 Properties 中的键值对都添加到Map中<K,V>voidmergePropertiesIntoMap(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中指定类型的元素。如果第一种类型未找到,则查找第二种类型,以此类推ObjectfindValueOfType(Collection<?> collection,Class<?>[] types)// 返回List/Set中元素的类型Class<?> findCommonElementType(Collection<?> collection)文件、资源、IO 流FileCopyUtils1. 输入// 从文件中读入到字节数组中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)// 获取 URLstaticURL getURL(StringresourceLocation)// 获取文件(在 JAR 包内无法正常使用,需要是一个独立的文件)staticFile getFile(StringresourceLocation)2. Resource// 文件系统资源 D:\…FileSystemResource// URL 资源,如 file://… http://…UrlResource// 类路径下的资源,classpth:…ClassPathResource// Web 容器上下文中的资源(jar 包、war 包)ServletContextResource// 判断资源是否存在booleanexists()// 从资源中获得 File 对象FilegetFile()// 从资源中获得 URI 对象URIgetURI()// 从资源中获得 URI 对象URLgetURL()// 获得资源的 InputStreamInputStreamgetInputStream()// 获得资源的描述信息StringgetDescription()StreamUtils

1. 输入

voidcopy(byte[]in, OutputStreamout)intcopy(InputStreamin, OutputStreamout)voidcopy(Stringin, Charset charset, OutputStreamout)longcopyRange(InputStreamin, OutputStreamout,longstart,longend)

2. 输出

byte[]copyToByteArray(InputStreamin)StringcopyToString(InputStreamin, Charset charset)// 舍弃输入流中的内容intdrain(InputStreamin)反射、AOPReflectionUtils1. 获取方法// 在类中查找指定方法Method findMethod(Class<?> clazz,Stringname)// 同上,额外提供方法参数类型作查找条件Method findMethod(Class<?> clazz,Stringname, Class<?>… paramTypes)// 获得类中所有方法,包括继承而来的Method[] getAllDeclaredMethods(Class<?> leafClass)// 在类中查找指定构造方法Constructor<T> accessibleConstructor(Class<T> clazz, Class<?>… parameterTypes)// 是否是 equals() 方法booleanisEqualsMethod(Method method)// 是否是 hashCode() 方法booleanisHashCodeMethod(Method method)// 是否是 toString() 方法booleanisToStringMethod(Method method)// 是否是从 Object 类继承而来的方法booleanisObjectMethod(Method method)// 检查一个方法是否声明抛出指定异常booleandeclaresException(Method method, Class<?> exceptionType)2. 执行方法// 执行方法ObjectinvokeMethod(Method method,Objecttarget)// 同上,提供方法参数ObjectinvokeMethod(Method method,Objecttarget,Object… args)// 取消 Java 权限检查。以便后续执行该私有方法voidmakeAccessible(Method method)// 取消 Java 权限检查。以便后续执行私有构造方法voidmakeAccessible(Constructor<?> ctor)

3. 获取字段

// 在类中查找指定属性Field findField(Class<?> clazz,Stringname)// 同上,多提供了属性的类型Field findField(Class<?> clazz,Stringname, Class<?>type)// 是否为一个 “public static final” 属性booleanisPublicStaticFinal(Field field)

4. 设置字段

// 获取 target 对象的 field 属性值ObjectgetField(Field field,Objecttarget)// 设置 target 对象的 field 属性值,值为 valuevoidsetField(Field field,Objecttarget,Objectvalue)// 同类对象属性对等赋值voidshallowCopyFieldState(Objectsrc,Objectdest)// 取消 Java 的权限控制检查。以便后续读写该私有属性voidmakeAccessible(Field field)// 对类的每个属性执行 callbackvoiddoWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)// 同上,多了个属性过滤功能。voiddoWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc,ReflectionUtils.FieldFilter ff)// 同上,但不包括继承而来的属性voiddoWithLocalFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)

AopUtils1. 判断代理类型// 判断是不是 Spring 代理对象booleanisAopProxy()// 判断是不是 jdk 动态代理对象isJdkDynamicProxy()// 判断是不是 CGLIB 代理对象booleanisCglibProxy()

2. 获取被代理对象的 class

//获取被代理的目标classClass<?> getTargetClass()

AopContext1. 获取当前对象的代理对象ObjectcurrentProxy()

JetBrains 宣布:IntelliJ 平台彻底停用 Log4j 组件,建议切换至 java.util.logging

面试官:private修饰的方法可以通过反射访问,那么private的意义是什么?最新 955 不加班的公司名单(2022版)SpringCloud 微服务架构,适合接私活(附源码)

发表评论

登录后才能评论