You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lombok是否存在可指定参数生成自定义构造方法的注解

Lombok自定义属性构造方案说明

基础问题解答

Lombok原生没有提供任意选择指定属性生成构造方法的注解,目前官方内置的构造相关注解仅3种:

  • @NoArgsConstructor:生成无参构造方法
  • @RequiredArgsConstructor:生成包含所有@NonNull修饰的非空属性、以及未赋初始值的final属性的构造方法
  • @AllArgsConstructor:生成包含类全部属性的构造方法

自定义多组参数构造的实现方案

首先需要注意:你需求中提到的两组构造参数(String age, String D)和(String age, String F)的方法签名完全相同,Java语法本身不允许重载签名相同的构造方法,因此你无法直接通过两个构造方法实现该需求,推荐用以下两种方式落地:

方式一:手写静态工厂方法(最直接)

你可以配合Lombok生成的基础构造,手写自定义静态工厂方法实现需求,Lombok不会覆盖你手动编写的方法,示例代码如下:

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

// 按需保留Lombok生成的通用构造
@NoArgsConstructor
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class User {
    private String age;
    private String D;
    private String F;
    // 其余属性省略

    // 静态工厂方法1:按age和D创建对象
    public static User createByAgeAndD(String age, String D) {
        User user = new User();
        user.age = age;
        user.D = D;
        return user;
    }

    // 静态工厂方法2:按age和F创建对象
    public static User createByAgeAndF(String age, String F) {
        User user = new User();
        user.age = age;
        user.F = F;
        return user;
    }
}

方式二:基于@Builder封装创建逻辑

如果后续还有其他自定义属性组合的创建需求,可以用@Builder注解简化赋值逻辑,封装对应创建方法即可。

内容的提问来源于stack exchange,提问作者Compte Gmail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:12:04