java - 如何优雅地更新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中使用这种模式进行更新的任何优雅方式?
解决方案
其他答案在技术上都是正确的,但要给出一些概念性的想法:您正在考虑/要求的称为统一访问原则- 读取和写入字段遵循相同语法的想法。分别认为x.y
和x.y()
实际上可以表示同一件事的想法。
不管好坏,Java在句法层面上不支持这个概念,lombok 在这里也无济于事。
如果你想给一个字段赋值,你要么需要一个显式的 setter(或者增量)方法,要么你需要创建 field public
。
故事结局。
推荐阅读
- reactjs - 剪辑路径-polyfill反应导入不起作用
- python - matplotlib,scrapy 包不能用 Pycharm 安装
- julia - 参数类型的问题
- python - 打印 R2 分数时发现样本数量不一致的输入变量:[354, 152]
- python - 如何从 JSON 文件中读取和打印浮点数据?
- python - 尝试在 python 上使用 selenium 将隐藏输入或发送键的值更改为文本字段
- jenkins - Jenkins 不能使用远程 ssh 的参数?
- vue.js - 数据在vue中文本输入字段之外发生变化时如何防止输入事件触发?
- python - 如何在模板中获取 Django 3+ 中的应用程序名称?
- perl - Cairo::SolidPattern 不是 GooCanvas2::CairoPattern 类型