lombok相关学习

参考:https://blog.csdn.net/qq_36314960/article/details/79565899    并加上builder注解

lombok作用:帮助我们编写getter/equals/toString/构造/setter方法的一个构建实体bean的“工具”。

lombok好处:1、简化冗余的JavaBean代码;2、大大提高JavaBean中方法的执行效率;

lombok常用注解:

@Data,@getter,@setter,@NoArgsConstructor,@AllArgsConstructor,@ToString,@EqualsAndHashCode,@Slf4j,@Log4j。我们一个一个来看:

@builder注解:可以使用连接方法的方式构建/修改bean:

@Builder.Default   bean存在默认值的情况使用该注解

生成bean:

UserInfo userInfo = UserInfo.builder()
        .name("zzl")
        .email("[email protected]")
        .build();

修改bean:

 userInfo = userInfo.toBuilder()
        .name("OK")
        .email("[email protected]")
        .build();

@Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;

@getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;

@setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;

@NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;

@AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;

@ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;

@EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;

@Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

@Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):

@ToString(exclude="column")

意义:排除column列所对应的元素,即在生成toString方法时不包含column参数;

@ToString(exclude={"column1","column2"})

意义:排除多个column列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成toString方法时不包含多个column参数;

@ToString(of="column")

意义:只生成包含column列所对应的元素的参数的toString方法,即在生成toString方法时只包含column参数;;

@ToString(of={"column1","column2"})

意义:只生成包含多个column列所对应的元素的参数的toString方法,其中间用英文状态下的逗号进行分割,即在生成toString方法时只包含多个column参数;

此处提供一个类作为参考:

@Data
@Builder
@AllArgsConstructor
public class APIResponse<T> {

    private static final long serialVersionUID = 1L;

    /**
     * 请求标识
     */
    private String requestId;

    /**
     * 返回码
     */
    @Builder.Default
    private Integer code = BaseResponseCode.CODE_200;
    /**
     * code非200时返回错误信息
     */
    private String userMsg;
    /**
     * code非200时返回错误信息,开发者排查问题;需要base64解码
     */
    private String developerMsg;
    /**
     * 服务器时间
     */
    private String timestamp = String.valueOf(System.currentTimeMillis());

    /**
     * 结果对象
     */
    private T content;

    public APIResponse() {
        this.code = BaseResponseCode.CODE_200;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章