这边的东西全部来自 https://itbaima.net/document
lombok 使用
https://projectlombok.org/download
重写getter和setter
@Getter
和@Setter
- 为类的字段生成
get
和set
方法。 - 可添加到类(
class
)或字段(field
)上。 - 不适用于静态字段(
static
),final
字段不会生成set
方法。
- 为类的字段生成
重写toString
@ToString
- 自动生成类的
toString
方法,提供类的字符串表示。
- 自动生成类的
重写equals和hashCode
@EqualsAndHashCode
- 自动生成
equals
和hashCode
方法,用于对象比较和哈希计算。
- 自动生成
重写构造器
@AllArgsConstructor
- 自动生成包含所有字段的构造器(全参构造器)。
@NoArgsConstructor
- 自动生成不带参数的构造器(无参构造器)。
@RequiredArgsConstructor
- 自动生成构造器,仅包含
final
或标记为@NonNull
的字段。
- 自动生成构造器,仅包含
其他高级功能
@Data
- 综合
@Setter
、@Getter
、@RequiredArgsConstructor
、@ToString
、@EqualsAndHashCode
。 - 不建议在有继承关系的类中使用,可能导致
equals
方法结果不符合预期。
- 综合
@Value
- 类似
@Data
,但不生成setter
,所有字段都是final
。
- 类似
@SneakyThrows
- 自动生成
try-catch
代码块,处理异常。
- 自动生成
@Cleanup
- 用于局部变量,自动调用其
close()
方法,资源清理。
- 用于局部变量,自动调用其
@Builder
- 实现建造者模式,简化对象创建。
@Builder.Default
:指定字段的默认值。@Builder.ObtainVia
:指定字段值的获取方式。
- 实现建造者模式,简化对象创建。
@Accessors
chain
:是否使用链式调用。
@Accessors(chain = true)
public class User {
private String name;
private Integer age;
}
// 使用
User user = new User().setName("张三").setAge(18);
@Log
-输入系统日志
@Log(topic = "logxxx")
public class log {
public static void main(String[] args) {
System.out.println("log"+log.getName());
log.info("log");
}
}