Java 我需要创建百得和二传吗?
我有一个Java 我需要创建百得和二传吗?,java,Java,我有一个设置。class,它有几个变量 private int timeRemember, timeConcentration; private boolean hearts, spades, diamonds, clubs; 我知道我应该为它们创建getter和setter,但这需要大约50行代码。 如果我有更多的变量,比如说40个,大概是200个左右 我的问题是——每个人都这么做?或者有什么我不知道的?是否需要类变量的getter和setter取决于您。这取决于该类在代码中其他地方的使用方
设置。class
,它有几个变量
private int timeRemember, timeConcentration;
private boolean hearts, spades, diamonds, clubs;
我知道我应该为它们创建getter和setter,但这需要大约50行代码。
如果我有更多的变量,比如说40个,大概是200个左右
我的问题是——每个人都这么做?或者有什么我不知道的?是否需要类变量的getter和setter取决于您。这取决于该类在代码中其他地方的使用方式。如果您不确定,您可以在开发过程中根据需要添加getter和setter
然而,许多现代JavaIDE允许您自动生成getter和setter(如Eclipse或IntelliJ)。在IntelliJ中,可以使用代码>生成。。。菜单。如果您有40个实例变量,那么您还需要担心其他问题。您的类设计很可能有问题 一般来说,任何超过10-11个字段的内容都被认为太多
除此之外,您可能还想问问自己,这个类是否真的需要getter和setter?它可以是不变的吗?等等。你可以利用一些东西,比如(而不是每件衣服都有一个bool),用一个(单独的时间和卡片)构建类,问问自己是否真的需要在类之外公开这个变量。看看这个项目。它允许您通过注释“自动”创建setter/getter。您使用的是什么IDE??。你可以为你的字段生成所有的getter和setter。这可能会有帮助,我知道我可以,我做到了。我只是好奇人们是否就是这么做的。是的,你可能应该创建get方法和set方法。它们并不是毫无意义的,我所做的就是没有包含这么多实例变量的类。另外,单独设置所有字段是没有意义的,要记住类的实例在构造之后必须始终处于有效和可用的状态。关于getter也可以做类似的讨论:这个类真的必须向整个世界公开它的整个内部表示吗?通常这两个问题的答案都是“不”。我喜欢我得到两张反对票,但没有评论。在我的回答中,除了没有提到类设计之外,我看不到任何与epoch相矛盾的东西。我想建议,不使用字段,而是使用一个映射来保存类中的所有值,并将键定义为最终变量。然后我意识到,我会因为开启了这种可能性而被投下地狱。总有一个“聪明”的家伙随时准备指出“正确”的方式做事情,没有任何好的理由。