Apache Commons
commons-beanutils包:用于处理JavaBean相关操作,最常见的就是属性复制。如 BeanUtils.copyProperties()、ProperUtils.copyProperties()
commons-lang包:如:StringUtils
commons-io包:简化IO操作,如:IOUtils
commons-collections包:简化集合操作,如:CollectionUtils
commons-fileupload包:处理文件上传相关操作
lombok
通过注解简化Java代码编写,使代码看起来更简洁。可以自动生成类的getter、setter、toString、hashcode、equals、构造器等
常用注解
@Getter、@Setter:为属性自动生成getter、setter方法
@NoArgsConstructor:生成无参构造器
@AllArgsConstructor:生成包含所有属性的构造器
@Data:生成getter、setter、hashcode、equals、toString方法
其它功能注解
@Slf4j 注入log日志对象
@NonNull 非空检查
Google Guava
Optional类:避免空指针
MoreObjects工具类:作为java.util.Objects类的扩展,
字符串操作,如split、join等操作
函数式编程
描述 | 地址 | 注释 |
---|---|---|
HTTP请求工具类 | 附件浏览器 HTTPUtil.java | |
java连接Linux工具类 | 附件浏览器 JscheUtils.txt | |
Redis分布式锁:互斥性、同一性、可重入性 | 附件浏览器 RedisLockV2.txt | |
字符串操作工具类 | org.apache.commons.lang3.StringUtils | isBlank:字符串是否为空 (trim后判断) isEmpty:字符串是否为空 (不trim并判断) equals:字符串是否相等 join:合并数组为单一字符串,可传分隔符 split:分割字符串 EMPTY:返回空字符串 replace:替换字符串 capitalize:首字符大写 |
字符串操作工具类 | https://blog.csdn.net/baidu_25310663/article/details/46046693 | |
数组操作工具类 | java.util.Arrays | 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException()。 |
数组操作工具类 | https://blog.csdn.net/baidu_25310663/article/details/84992176 | |
Json字符串操作工具类 | 附件浏览器 JsonUtil.txt | |
IO流操作 | org.apache.commons.io.IOUtils | closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块 toString:转换IO流、 Uri、 byte[]为String copy:IO流数据复制,从输入流写到输出流中,最大支持2GB toByteArray:从输入流、URI获取byte[] write:把字节. 字符等写入输出流 toInputStream:把字符转换为输入流 readLines:从输入流中读取多行数据,返回List<String> copyLarge:同copy,支持2GB以上数据的复制 lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败 |
file操作 | org.apache.commons.io.FileUtils | deleteDirectory:删除文件夹 readFileToString:以字符形式读取文件内容 deleteQueitly:删除文件或文件夹且不会抛出异常 copyFile:复制文件 writeStringToFile:把字符写到目标文件,如果文件不存在,则创建 forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级 write:把字符写到指定文件中 listFiles:列举某个目录下的文件(根据过滤器) copyDirectory:复制文件夹 forceDelete:强制删除文件 |
fileName | org.apache.commons.io.FilenameUtils | getExtension:返回文件后缀名 getBaseName:返回文件名,不包含后缀名 getName:返回文件全名 concat:按命令行风格组合文件路径(详见方法注释) removeExtension:删除后缀名 normalize:使路径正常化 wildcardMatch:匹配通配符 seperatorToUnix:路径分隔符改成unix系统格式的,即/ getFullPath:获取文件路径,不包括文件名 isExtension:检查文件后缀名是不是传入参数(List<String>)中的一个 |
字符串加密 | org.apache.commons.codec.digest.DigestUtils | md5Hex:MD5加密,返回32位字符串 sha1Hex:SHA-1加密 sha256Hex:SHA-256加密 sha512Hex:SHA-512加密 md5:MD5加密,返回16位字符串 |
集合操作 | org.apache.commons.collections.CollectionUtils | isEmpty:是否为空 select:根据条件筛选集合元素 transform:根据指定方法处理集合元素,类似List的map() filter:过滤元素,雷瑟List的filter() find:基本和select一样 collect:和transform 差不多一样,但是返回新数组 forAllDo:调用每个元素的指定方法 isEqualCollection:判断两个集合是否一致 |
配置类属性操作 | org.apache.commons.beanutils.PropertyUtils | getProperty:获取对象属性值 setProperty:设置对象属性值 getPropertyDiscriptor:获取属性描述器 isReadable:检查属性是否可访问 copyProperties:复制属性值,从一个对象到另一个对象 getPropertyDiscriptors:获取所有属性描述器 isWriteable:检查属性是否可写 getPropertyType:获取对象属性类型 |
数组操作 | org.apache.commons.lang3.ArrayUtils | contains:是否包含某个字符串 addAll:添加整个数组 clone:克隆一个数组 isEmpty:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的Object数组 |
工具类包 | https://github.com/looly/hutool | Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 |