@UtilityClass
@UtilityClass 是一个注解,它是 Project Lombok 库的一部分。Project Lombok 是一个 Java 库,旨在减少样板代码和提高代码的可读性。@UtilityClass 注解用于创建一个具有静态方法的实用工具类,而无需显式编写类的构造函数或将类声明为 final。这个注解通常用于声明不可实例化的工具类。
注解说明:
@UtilityClass 是 Lombok 提供的一个注解,用于标记一个类,以表示它是一个实用工具类。
Lombok 会在编译时自动生成一些常见的实用方法,如静态工厂方法、静态常量等。
主要特征:
类被 @UtilityClass 注解标记后,其构造函数会被声明为私有,并且不允许实例化该类。
所有方法都被声明为 static,因此您可以直接通过类名称来调用这些方法,而不需要创建类的实例。
常见的实用方法,如 toString(), hashCode(), equals(), 以及一些静态常量的生成都会由 Lombok 自动生成。
示例:
import lombok.experimental.UtilityClass;
@UtilityClass
public class MathUtils {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
在上面的示例中,MathUtils 类被标记为 @UtilityClass,它包含了两个静态方法 add 和 subtract。这些方法可以直接通过类名称调用,而不需要创建 MathUtils 的实例。
使用场景:
@UtilityClass 适用于具有纯粹静态方法和常量的实用工具类。
可以用于替代常见的实用类,如 java.lang.Math,java.util.Collections 等,使代码更易读和维护。
避免了手动编写构造函数、静态工厂方法以及常量定义,减少了样板代码。
Lombok 配置:
使用 @UtilityClass 需要确保 Lombok 插件已添加到项目的构建工具中(例如,Maven 或 Gradle),并且IDE(如 IntelliJ IDEA)已正确配置以支持 Lombok 注解。
总之,@UtilityClass 注解是 Lombok 提供的一个方便工具,用于生成实用工具类,减少代码冗余,提高代码可读性,并促进静态方法的使用。