Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我需要创建百得和二传吗?_Java - Fatal编程技术网

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相矛盾的东西。我想建议,不使用字段,而是使用一个映射来保存类中的所有值,并将键定义为最终变量。然后我意识到,我会因为开启了这种可能性而被投下地狱。总有一个“聪明”的家伙随时准备指出“正确”的方式做事情,没有任何好的理由。