JAVA使用@Bulider注解 报错“找不到合适的构造器”

182 阅读1分钟

image.png 使用maven进行package的时候出现了报错 查看报错的类

@Data
@Builder
public class AdminOpLogModel {
    private int id;
    private int userId;
    private int companyId;
    private int operation;
    private String opObjectName;
    private String opObject;
    private String opUrl;
    private String loginIp;
    private String opTime;
    private int dataSource;
    private int opType;

    public AdminOpLogModel() {
    }

    public AdminOpLogModel(int userId, int companyId, int operation, String opObjectName, String opObject, String opUrl, String loginIp, String opTime, int opType) {
        this.userId = userId;
        this.companyId = companyId;
        this.operation = operation;
        this.opObjectName = opObjectName;
        this.opObject = opObject;
        this.opUrl = opUrl;
        this.loginIp = loginIp;
        this.opTime = opTime;
        this.opType = opType;
    }
}

可能报错的方法

    AdminOpLogModel adminOpLogModel = AdminOpLogModel.builder()
                .companyId(usersModel.getCompanyId())
                .opUrl(servletPath)
                .loginIp(ip)
                .opObjectName(infoModel.getInterviewName())
                .opTime(TimeUtil.getCurrentTimeForMysql())
                .opType(1)
                .operation(AdminOpEnum.AI_INTERVIEW_DELETE.getAdminOpCode())
                .userId(usersModel.getId()).build();

可以看到AdminOpLogModel这个类包含自己写的两个构造方法,一个是无参构造,有个是有参构造但不是全参构造,@Builder依赖于这个类的全参构造器,而这个类缺少一个正确的全参构造,所以使用的时候进行了报错。 解决方法就是在这个类上加上注解@AllArgsConstructor或者自己生成一个正确的全参构造

转载来源:blog.csdn.net/Destiny_zz/…