首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java :在@AllArgsConstructor中省略一个字段?

Java :在@AllArgsConstructor中省略一个字段?
EN

Stack Overflow用户
提问于 2014-05-20 13:30:11
回答 6查看 106.4K关注 0票数 154

如果我使用Lombok指定@AllArgsConstructor,它将生成一个构造函数来设置所有声明的字段(不是最终字段,而不是静态字段)。是否可以省略某些字段,并为所有其他字段保留生成的构造函数?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-05-21 08:44:13

不那是不可能的。有一个创建@SomeArgsConstructor的特性请求,您可以在其中指定涉及的字段列表。

完全公开:我是Lombok开发人员的核心项目之一。

票数 189
EN

Stack Overflow用户

发布于 2016-12-19 09:50:26

或者,您可以使用@RequiredArgsConstructor。这为所有属于@NonNullfinal的字段添加了一个构造函数。

文档

票数 159
EN

Stack Overflow用户

发布于 2020-12-17 08:07:18

为了防止有帮助,初始化的final字段被排除在外。

代码语言:javascript
运行
复制
@AllArgsConstructor
class SomeClass {
    final String s;
    final int i;
    final List<String> list = new ArrayList<>(); // excluded in constructor
}

var x = new SomeClass("hello", 1);

特别是对于集合或其他可变类来说,这是有意义的。

此解决方案可与这里的其他解决方案一起使用,即使用@RequiredArgsConstructor

代码语言:javascript
运行
复制
@RequiredArgsConstructor
class SomeClass2 {
    final String s;
    int i; // excluded because it's not final
    final List<String> list = new ArrayList<>(); // excluded because it's initialized
}

var x = new SomeClass2("hello");
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23761242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档