推荐用属性代替 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的主要内容,如果未能解决你的问题,请参考以下文章

macbook自带的文本编辑器不好用,求推荐一款免费的纯文本编辑软件,可以完美代替windows系统记事本的

图文混排——用表情代替 “[文字]”显示

mysql为啥说如果使用的是Innodb引擎的话,推荐使用varchar代替char

用hibernate.properties代替hibernate.cfg.xml配置常用的属性

span标签中显示固定长度,超出部分用省略号代替,光标放到文字上显示全部

span标签中显示固定长度,超出部分用省略号代替,光标放到文字上显示全部