美文网首页
lombok使用

lombok使用

作者: 充满智慧的白痴 | 来源:发表于2019-12-30 10:30 被阅读0次

@AllArgsConstructor

@AllArgsConstructor(access = AccessLevel.PRIVATE)
使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数
@NoArgsConstructor
使用后创建一个无参构造函数
@Data
使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toString等方法了,注解后在编译时会自动加进去
@Builder
关于Builder较为复杂一些,Builder的作用之一是为了解决在某个类有很多构造函数的情况,也省去写很多构造函数的麻烦,在设计模式中的思想是:用一个内部类去实例化一个对象,避免一个类出现过多构造函数,

@Builder使用案例

@Data   // 省略getter,setter
@NoArgsConstructor    // 添加无参构造
@Builder(toBuilder = true)    // 可以使用Builder进行构造
@AllArgsConstructor(access = AccessLevel.PRIVATE)     // 生成包含所有属性的私有构造函数
public class ResultBean<T> implements Serializable {

    private static final long serialVersionUID = 8676131899637805509L;

    @ApiModelProperty(value = "状态码", example = "200", required = true)
    private String code;
    @ApiModelProperty(value = "结果信息", example = "ok", required = true)
    private String msg;

    @ApiModelProperty(value = "结果集的数据封装")
    // 默认的data
    @Builder.Default
    private T data = (T) "";

}

@EqualsAndHashCode

@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集,但是默认@Data不会使用父类的方法,所以需要重新添加上@EqualsAndHashCode(callSuper=true)

枚举类的使用

public class EnumDemo {
    public static void main(String[] args){
        //直接引用
        Day day =Day.MONDAY;
    }
}
//定义枚举类型
enum Day {
    MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum CodeEnum {
    SUCCESS("200", "ok"),
    SYS_ERROR("500", "error"),
    VALUE_NULL("300", "值为空"),
    PARAM_NULL("301", "参数为空,处理异常"),
    FAIL("400", "失败"),
    NOT_FOUND("404","接口不存在"),
    INTERNAL_SERVER_ERROR("500","服务器内部错误"),
    EXCEL_TEMPLATE_ERROR("500","excel模板上传有误"),

    PARAM_ERROR("500", "参数错误"),
    PARAM_IS_NULL("200", "参数为空"),
    PARAM_IS_INVALID("200", "参数不合法"),
    DATA_NOT_FOUND("200", "数据未找到"),
    NOTIFY_SFIM_FAILED("400", "通知丰声失败"),
    NOTIFY_SFIM_SUCCESS("200", "通知丰声成功"),
    DATA_ALREADY_EXIST("200", "数据已存在");
    // 当枚举的对象是非普通类型时,可以使用自定义属性约定约定取值
    private String code;
    private String msg; 
}
// 外界使用枚举类
import static com.awsm.budget.result.CodeEnum.*;
import static com.....ClassName.*;意思是导入这个类里的静态方法
当你需要频繁访问一个或两个类的静态成员时使用它
SUCCESS.getCode()   // return 200
SUCCESS.getMsg() //return "成功"

相关文章

网友评论

      本文标题:lombok使用

      本文链接:https://www.haomeiwen.com/subject/rbqbpctx.html