推荐用属性代替 getter/setter
Posted sp42a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐用属性代替 getter/setter相关的知识,希望对你有一定的参考价值。
Java 实体类有条不成文的规矩,Bean 是一个 getter/setter:
class Apple
private String color;
public void setColor(String color)
this.color = color;
public String getColor()
return color;
然后有人觉得 getter/setter 书写太烦了,于是有了 Lombok,这样的话 getter/setter 就消失了(起码是看不见了)。
但是,Java 不是有**属性字段(field)**的吗,——我自打初学 Java 开始,就是不明白为什么不能直接用属性,非要套 getter/setter?不用 getter/setter 会怎样?
我一直没有答案,网上找到的所谓答案我觉得都是解答不到位的。
我不想用 Lombok,这货入侵太强,同时觉得 getter/setter 真的很烦,虽然 IDE 可以帮你一键生成。于是我——
——大胆使用——属性!
这样,实体类就变成:
class Apple
public String color;
new Apple().color = "red";
我项目中没发觉任何不妥,当然,你的序列化工具,如 JSON 转换,JDBC/MyBatis 转换,可能要处理一下。重点是,代码行数变小,清爽很多:)
以上是关于推荐用属性代替 getter/setter的主要内容,如果未能解决你的问题,请参考以下文章
Angular @Input getter/setter 和非原始值
在 PyGetSetDef 中使用闭包来重用属性 getter-setter
JSON 使用 getter/setter 对 ES6 类属性进行字符串化