lombok使用常见问题及解决方法

介绍

Lombok是一个基于java的开发包,能通过注解的方式简化java代码,自动生成javabean的getter和setter方法、构造函数等,提高开发人员的开发效率。

idea配置lombok

在setting → Plugins中搜索Lombok关键字,找到Lombok插件并安装,安装成功后重启idea。
maven项目在pom.xml中添加依赖,非maven项目可以下载jar包并添加到Libraries中即可。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
    <scope>provided</scope>
</dependency>

使用lombok的Data注解定义一个javabean,变得简洁很多了。

import lombok.*;
import java.io.Serializable;
import java.util.*;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TemplateMessageDto implements Serializable
{
    /**
     * 模板
     *
     * @see WxTemplate
     */
    protected String template;

    /**
     * 接收消息的微信用户openId
     */
    protected String openId;

    /**
     * 消息打开的url
     */
    protected String url;

    @Builder.Default
    protected Map<String, String> data = new HashMap<>();
}

上面代码中使用了Builder注解,表示为javabean生成一个构造器。
可以像下面这样子使用

TemplateMessageDto message = TemplateMessageDto.builder().openId("").url("").template("").build();

提示There is no default constructor available in xxx

继承了使用lombok的data注解标识的javabean,在定义当前类的构造方法是提示There is no default constructor available in xxx。

public class WxTemplateMessage extends TemplateMessageDto
{
    public WxTemplateMessage()
    {
    }
}

在这里插入图片描述
添加NoArgsConstructor注解即可。

无法将类TemplateMessageDto中的构造器应用到给定类型

在这里插入图片描述
添加AllArgsConstructor注解就可以解决了。

idea下编译提示找不到符号

项目添加了lombok的依赖,编译时提示找不到符号。
在setting → Build,Execution,Deployment → Compiler → Annotation Processors中勾选上Enable annotation processing
在这里插入图片描述

Jenkins添加lombok依赖

项目通过Jenkins自动部署,项目中有依赖到lombok。需要在pom.xml中添加lombok依赖。否则会报error: cannot find symbol的错误。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
    <scope>provided</scope>
</dependency>

同时还需要在编译插件中添加AnnonationProcessor相关的配置

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <annotationProcessors>
                    <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor
                    </annotationProcessor>
                </annotationProcessors>
            </configuration>
        </plugin>
    </plugins>
</build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值