【Java干货】99%的开发者都在用的Java工具类,效率提升100%!

大家好,今天给大家分享一些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!🎯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java筑基真经

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值