首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java类中实现Getter和Setter方法是否总是合适的

在Java类中实现Getter和Setter方法是否总是合适的
EN

Stack Overflow用户
提问于 2017-12-16 04:51:32
回答 2查看 451关注 0票数 0

在创建Java类时,是否应该始终实现getter和setter方法?我知道在某些情况下,让其他类能够通过setter方法更改类变量是不可取的,但只要我们在这些方法中实现输入验证,是否总是适合包含它们?

如果并不总是适合包含getter和setter方法,请提供具体实现和不实现它们的指导原则。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-16 05:11:47

简而言之,没有硬性规定。

如果您认为其他类需要访问某个字段,则可以为该字段添加一个getter。对于完全在类内部工作的字段,不使用getter是完全合适的,并且不打算公开。让getter返回的不是字段本身,而是它的一些修改形式,或者它的一个不可变的副本(例如,一个内部List字段的副本),这也是完全合适的。

如果您认为其他类需要自由访问以更改字段,则可以包含setter。省略setter实际上会使该字段成为只读字段。您还可以选择包含一个自定义方法来改变您的字段,而不是传统的setter方法(例如,将值添加到内部ListSetadd()方法,仅举个例子)。所有的方法都是完全合适的,这取决于具体情况。

编辑:将"property“改为"field”,以符合已建立的术语

票数 3
EN

Stack Overflow用户

发布于 2017-12-16 05:16:49

国际海事组织

如果您的类是不可变的,则不需要setter;我甚至认为getter是可选的,只要您将字段设为final即可。

如果您的类是可变的,那么您可能需要同时使用getter和setter,特别是对于可以变化的字段。

这里的答案很可能是基于观点/经验的,就像我的一样。

编辑:对于可变字段,我建议使用getters/setter,其中getter返回一个副本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47839697

复制
相关文章

相似问题

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