首页 > 解决方案 > 如何优雅地更新java中的字段?

问题描述

@Data
public class MyData {
    private long a;
    private long b;
    private long c;
}

如果我们想更新 a,b,c 的所有字段,那么代码可能如下所示:

MyData d;
...
d.setA(d.getA()+2);
d.setB(d.getB()+5);
d.setC(d.getAC()+8);

在其他语言中,我们可以编写如下代码:

d.a += 2;
d.b += 5;
d.c += 8;

在java中使用这种模式进行更新的任何优雅方式?

标签: javalombok

解决方案


其他答案在技术上都是正确的,但要给出一些概念性的想法:您正在考虑/要求的称为统一访问原则- 读取和写入字段遵循相同语法的想法。分别认为x.yx.y()实际上可以表示同一件事的想法。

不管好坏,Java在句法层面上支持这个概念,lombok 在这里也无济于事。

如果你想给一个字段赋值,你要么需要一个显式的 setter(或者增量)方法,要么你需要创建 field public

故事结局。


推荐阅读