大家好,今天给大家分享一些Java开发中常用的工具类,这些工具类不仅能提升开发效率,还能让你的代码更加简洁优雅!无论是新手还是老手,看完绝对收获满满!💪
1. Apache Commons Lang3
Apache Commons Lang3 是Java中最常用的工具库之一,提供了大量实用的工具类和方法。
1.1 StringUtils
:字符串处理
-
常用方法:
-
isEmpty()
:判断字符串是否为空。 -
isBlank()
:判断字符串是否为空白(包括空格、制表符等)。 -
join()
:将数组或集合拼接成字符串。
-
String str = " hello world ";
// 判断字符串是否为空
System.out.println(StringUtils.isEmpty(str)); // false
// 判断字符串是否为空白
System.out.println(StringUtils.isBlank(str)); // false
// 将数组拼接成字符串
System.out.println(StringUtils.join(new String[]{"a", "b", "c"}, ",")); // a,b,c
1.2 ArrayUtils
:数组操作
-
常用方法:
-
contains()
:判断数组是否包含某个元素。 -
addAll()
:合并多个数组。
-
int[] array = {1, 2, 3};
// 判断数组是否包含某个元素
System.out.println(ArrayUtils.contains(array, 2)); // true
// 合并多个数组
int[] newArray = ArrayUtils.addAll(array, new int[]{4, 5});
System.out.println(Arrays.toString(newArray)); // [1, 2, 3, 4, 5]
2. Google Guava
Google Guava 是Google开源的一个Java工具库,提供了丰富的集合、缓存、字符串处理等工具。
2.1 Lists
/Sets
/Maps
:集合工具
-
常用方法:
-
Lists.newArrayList()
:快速创建ArrayList。 -
Sets.union()
:求两个集合的并集。 -
Maps.newHashMap()
:快速创建HashMap。
-
// 快速创建ArrayList
List<String> list = Lists.newArrayList("a", "b", "c");
// 快速创建HashSet
Set<Integer> set1 = Sets.newHashSet(1, 2, 3);
Set<Integer> set2 = Sets.newHashSet(3, 4, 5);
// 求两个集合的并集
Set<Integer> union = Sets.union(set1, set2);
System.out.println(union); // [1, 2, 3, 4, 5]
2.2 Preconditions
:参数校验
-
常用方法:
-
checkNotNull()
:检查参数是否为null。 -
checkArgument()
:检查参数是否满足条件。
-
public void printName(String name) {
// 检查name是否为null
Preconditions.checkNotNull(name, "Name cannot be null");
// 检查name是否为空字符串
Preconditions.checkArgument(name.length() > 0, "Name cannot be empty");
System.out.println(name);
}
3. Hutool
Hutool 是一个国产的Java工具库,功能非常全面,涵盖了字符串、日期、IO、加密等领域。
3.1 DateUtil
:日期处理
-
常用方法:
-
now()
:获取当前时间。 -
format()
:格式化日期。 -
parse()
:解析字符串为日期。
-
String dateStr = "2023-10-01";
// 将字符串解析为日期
Date date = DateUtil.parse(dateStr);
// 格式化日期
System.out.println(DateUtil.format(date, "yyyy/MM/dd")); // 2023/10/01
3.2 SecureUtil
:加密解密
-
常用方法:
-
md5()
:计算MD5值。 -
aes()
:AES加密解密。
-
String password = "123456";
// 计算MD5值
String md5 = SecureUtil.md5(password);
System.out.println(md5); // e10adc3949ba59abbe56e057f20f883e
4. Lombok
Lombok 是一个通过注解简化Java代码的工具,可以减少大量的样板代码。
4.1 @Data
:自动生成Getter/Setter
-
作用:自动生成Getter、Setter、toString、equals和hashCode方法。
@Data
public class User {
private String name;
private int age;
}
User user = new User();
user.setName("Tom");
user.setAge(18);
// 自动生成toString方法
System.out.println(user); // User(name=Tom, age=18)
4.2 @Slf4j
:日志记录
-
作用:自动生成日志对象。
@Slf4j
public class Test {
public void test() {
// 使用自动生成的log对象记录日志
log.info("This is a log message");
}
}
5. 自定义工具类
除了使用第三方工具库,我们也可以根据业务需求自定义工具类。例如:
5.1 JsonUtil
:JSON处理
-
功能:封装JSON的序列化和反序列化。
public class JsonUtil {
private static final ObjectMapper mapper = new ObjectMapper();
// 将对象序列化为JSON字符串
public static String toJson(Object obj) {
try {
return mapper.writeValueAsString(obj);
} catch (JsonProcessingException e) {
throw new RuntimeException("JSON序列化失败", e);
}
}
// 将JSON字符串反序列化为对象
public static <T> T fromJson(String json, Class<T> clazz) {
try {
return mapper.readValue(json, clazz);
} catch (IOException e) {
throw new RuntimeException("JSON反序列化失败", e);
}
}
}
5.2 FileUtil
:文件操作
-
功能:封装文件的读写操作。
public class FileUtil {
// 读取文件内容
public static String readFile(String path) {
try {
return new String(Files.readAllBytes(Paths.get(path)));
} catch (IOException e) {
throw new RuntimeException("文件读取失败", e);
}
}
// 将内容写入文件
public static void writeFile(String path, String content) {
try {
Files.write(Paths.get(path), content.getBytes());
} catch (IOException e) {
throw new RuntimeException("文件写入失败", e);
}
}
}
6. 总结
以上这些工具类和方法,都是Java开发中的“利器”,熟练掌握它们可以极大提升开发效率!赶紧收藏起来,用到的时候直接Copy!🎯