Lombok 记录各种用法

本文介绍了如何在Java项目中引入Lombok库,包括其基本依赖配置,以及如何通过@Data、@Builder、@NoArgsConstructor和@AllArgsConstructor注解快速生成getter/setter方法和构造函数。特别关注了如何利用@Accessors(chain=true)进行链式编程,简化映射操作并提高代码可读性。
摘要由CSDN通过智能技术生成

Lombok

基础设置

            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.20</version>
            </dependency>

/**
 * 订单明细
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderDetail {
	实体类属性
}

@Data
就是设置get set方法,和一些基础方法
toString
equals
hashCode
canEqual

@NoArgsConstructor
无参构造函数

@AllArgsConstructor
有参构造函数,并且是所有的

@Builder
这里@Builder就是链式编程,还算好用,看我写的一下就会这个写法

//返回的vo
OrderSubmitVO orderSubmitVO = OrderSubmitVO.builder()
        .orderAmount(orders.getAmount())
        .orderNumber(orders.getNumber())
        .orderTime(orders.getOrderTime())
        .id(orders.getId())
        .build();

你想要什么类,就用这个类的.builder方法,然后是 点属性名,里边直接设置属性名,最后加一个build,很好用

特殊设置

链式编程,set 返回实体类

有的时候,我们写stream的时候,需要set的时候返回实体类,这样就能少些一行代码

例如我没用链式编程的化,

        List<OrderDetail> orderDetails = shoppingCartService.list(wrapper)
                .stream()
                .map((item) -> {
                    OrderDetail orderDetail = BeanUtil.copyProperties(item, OrderDetail.class);
                    orderDetail.setOrderId(orders.getId());
                    return orderDetail;
                })
                .collect(Collectors.toList());
        orderDetailService.saveBatch(orderDetails);

我们把注意力放在我这里的map里边,因为我只需要设置一个属性,但是因为我要设置这一个属性我还得写三行代码,太累了,这个时候我门就在这个实体类上加注解

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class OrderDetail implements Serializable {

@Accessors(chain = true),允许链式编程,这样set之后,会返回实体类

那么改造过后的代码长这样

List<OrderDetail> orderDetails = shoppingCartService.list(wrapper)
        .stream()
        .map((item) -> BeanUtil.copyProperties(item, OrderDetail.class).setOrderId(orders.getId()))
        .collect(Collectors.toList());
orderDetailService.saveBatch(orderDetails);

这样就能写成一行,十分nice

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

憨憨小江

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

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

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

打赏作者

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

抵扣说明:

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

余额充值