java后端技术(Java 最常用的 5 个工具类!直接复制用,节省 80% 开发时间)

java后端技术(Java 最常用的 5 个工具类!直接复制用,节省 80% 开发时间)
Java 最常用的 5 个工具类!直接复制用,节省 80% 开发时间

Java最常用的5个工具类!直接复制用,节省80%开发时间

做Java后端开发,与其重复造轮子,不如把高频工具类吃透!我整理了日常开发中使用率最高的5个工具类,涵盖字符串、日期、集合、文件、数据校验,代码可直接复制到项目里,帮你少写几百行重复代码,提升开发效率,新手也能快速上手。

一、字符串工具类(StringUtils)

日常开发中字符串判空、拼接、替换是高频操作,原生String方法太繁琐,Apache的StringUtils更实用,彻底规避空指针异常,适配绝大多数业务场景。

Maven依赖:

xml
<!-- StringUtils依赖 -->

org.apache.commons
commons-lang3
3.14.0

核心用法(直接复制):

java
import org.apache.commons.lang3.StringUtils;
public class StringUtilsDemo {
public static void main(String[] args) {
String str = " Java后端实战 ";

// 1. 判空(包含空格、null、空字符串)
boolean isEmpty = StringUtils.isEmpty(str); // false(有空格)
boolean isBlank = StringUtils.isBlank(str); // true(仅空格)

// 2. 去除首尾空格
String trimStr = StringUtils.trim(str); // "Java后端实战"

// 3. 字符串拼接(避免空指针)
String joinStr = StringUtils.join("Hello", " ", "Java"); // "Hello Java"

// 4. 字符串分割(避免空数组)
String[] splitArr = StringUtils.split("a,b,c", ","); // ["a","b","c"]

// 5. 字符串替换
String replaceStr = StringUtils.replace(str, "Java", "Python"); // " Python后端实战 "
}
}

二、日期工具类(LocalDateTime + DateTimeFormatter)

Java8及以后推出的全新日期API,彻底替代老旧的Date和SimpleDateFormat,线程安全、语法简洁,是企业级项目标配,不用再处理日期转换的各种坑。

核心用法(直接复制):

java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateUtilsDemo {
// 定义全局日期格式,固定格式避免重复编写
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

public static void main(String[] args) {
// 1. 获取当前系统时间
LocalDateTime now = LocalDateTime.now();

// 2. 日期格式转为字符串
String dateStr = now.format(FORMATTER); // 示例:2026-03-16 15:30:00

// 3. 字符串精准转为日期
LocalDateTime parseDate = LocalDateTime.parse("2026-03-16 15:30:00", FORMATTER);

// 4. 日期加减操作(加1天、减1小时)
LocalDateTime nextDay = now.plusDays(1);
LocalDateTime lastHour = now.minusHours(1);

// 5. 单独获取年月日时分秒
int year = now.getYear();
int month = now.getMonthValue();
int day = now.getDayOfMonth();
}
}

三、集合工具类(CollectionUtils)

专门处理List、Set等集合的工具类,解决集合判空、合并、交集、差集等高频需求,避免空指针,简化集合操作代码,适配后端接口数据处理、数据筛选等场景。

Maven依赖:

xml

org.apache.commons
commons-collections4
4.4

核心用法(直接复制):

java
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
public class CollectionUtilsDemo {
public static void main(String[] args) {
List list1 = new ArrayList<>();
list1.add("Java");
list1.add("SpringBoot");

List list2 = null;

// 1. 集合判空(null和空集合都判定为空)
boolean isEmpty = CollectionUtils.isEmpty(list2); // true

// 2. 合并两个集合,自动过滤null
List mergeList = CollectionUtils.union(list1, list2);

// 3. 获取两个集合的交集
List intersectList = CollectionUtils.intersection(list1, List.of("Java", "Vue"));

// 4. 获取两个集合的差集
List diffList = CollectionUtils.subtract(list1, List.of("SpringBoot"));

// 5. 空集合安全返回,避免返回null
List safeList = CollectionUtils.emptyIfNull(list2);
}
}

四、文件工具类(FileUtils)

简化文件读写、复制、追加等操作,不用手动编写IO流,一行代码搞定文件处理,适配文件上传下载、日志写入、配置文件读取等场景,大幅减少冗余代码。

Maven依赖:

java后端技术(Java 最常用的 5 个工具类!直接复制用,节省 80% 开发时间)

xml

commons-io
commons-io
2.15.1

核心用法(直接复制):

java
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.List;
public class FileUtilsDemo {
public static void main(String[] args) throws Exception {
File file = new File("test.txt");

// 1. 覆盖写入文件内容
FileUtils.writeStringToFile(file, "Java后端实战", StandardCharsets.UTF_8);

// 2. 追加内容到文件末尾,不覆盖原有内容
FileUtils.writeStringToFile(file, "\n程序员副业", StandardCharsets.UTF_8, true);

// 3. 一次性读取文件全部内容为字符串
String content = FileUtils.readFileToString(file, StandardCharsets.UTF_8);

// 4. 按行读取文件内容,返回List集合
List lines = FileUtils.readLines(file, StandardCharsets.UTF_8);

// 5. 快速复制文件
FileUtils.copyFile(file, new File("test_copy.txt"));
}
}

五、数据校验工具类(ValidUtils)

后端接口参数校验必备,替代繁琐的if-else判空、格式校验,适配SpringBoot项目,统一校验逻辑,提升代码整洁度,保障接口入参合规性。

Maven依赖:

xml

javax.validation
validation-api
2.0.1.Final


org.hibernate.validator
hibernate-validator
6.2.5.Final

核心用法(直接复制):

java
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Set;
// 1. 定义实体类,添加校验注解
class User {
@NotBlank(message = "用户名不能为空,且不能为纯空格")
private String username;

@NotNull(message = "年龄不能为空")
private Integer age;

@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不符合规范")
private String phone;
// 自动生成getter和setter方法
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
// 2. 封装通用校验工具类,直接调用
public class ValidUtils {
private static final Validator VALIDATOR = Validation.buildDefaultValidatorFactory().getValidator();

/**
* 通用参数校验方法
* @param obj 待校验实体对象
* @return 校验失败返回错误信息,成功返回null
*/
public static String validate(T obj) {
Set<!--?--> validateSet = VALIDATOR.validate(obj);
if (!validateSet.isEmpty()) {
return validateSet.iterator().next().getMessage();
}
return null;
}

// 测试工具类效果
public static void main(String[] args) {
User user = new User();
user.setUsername("");
user.setAge(null);
user.setPhone("12345678900");

String errorMsg = ValidUtils.validate(user);
System.out.println("校验错误信息:" + errorMsg);
}
}

六、实用总结

以上5个工具类,覆盖了Java后端开发80%以上的高频场景,建议直接封装到项目的common通用模块,后续开发直接调用,不用重复编写基础代码,大幅提升开发效率,尤其适合新手快速上手、老程序员简化工作。

后续会持续分享Java实战代码、完整项目源码、程序员副业接单技巧、面试高频考点,专注干货输出,助力程序员提升技术、增加额外收入。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

相关阅读

最新文章

热门文章

本栏目文章