这个问题在这里已经有了答案:Isitinananti-patterntoalwaysusegetandsetmethodstoaccessaclass'sownmemberfields?[duplicate](11个答案)关闭9年前。我见过这两种方法的使用,但从未听说过出于任何特定原因,一种方法优于另一种方法。publicStringtoString(){returnthis.field1+""+this.field2;}对比publicStringtoString(){returngetField1()+""+getField2();}我在我的示例中使用了字符串连接以保持代码简洁。
我只是想知道在类实例中使用getter方法访问类变量是否可取,以及直接访问是否存在任何明显的性能差异。尤其是在jvm中预计会生成很多对象的情况下。 最佳答案 在Java中,约定从类外部通过getter/setter访问所有字段。从类内部,您通常直接访问字段。但是,您也可以根据需要通过getter/setter访问它们。重要的是要知道这只是一个约定。许多其他编程语言没有这样严格的规则或其他概念。所以你不是被迫这样做的。但这是一个很好的做法。并且:不要介意性能!使用getters/setters不会影响应用程序的性能。JVM/Java就
引用嵌套对象的最佳做法是什么?假设我有以下内容:classOuter{privateInnerAinnerA;//gettersandsetters}classInnerA{privateInnerBinnerB;//gettersandsetters}classInnerB{privateStringsomeString;//gettersandsetters}在我的Controller或服务类中,我需要检查InnerB类的someString字符串变量以确保它不为null或不为空,所以我这样做:if(getOuter().getInnerA().getInnerB().getSom
我有一个关于在我的域对象中生成的getter和setter方法的小问题。我想为我的源代码使用一个通用的风格指南。该风格指南的一部分说我在每个类成员名称的开头都使用前缀“m”表示成员。classUser{StringmName;ListmAllCall;ListmAllGeo;不幸的是,我有几个具有更多成员变量的类。我遇到的问题是我是一个非常懒惰的开发人员,我在Eclipse中使用创建了getter和setter方法"Source"->"GenerateGettersandSetters".结果是publicStringgetmName(){returnmName;}publicvoid
我的项目中有很多javabean。我需要为他们生成一个JUnit测试类。使用Eclipse3.2和junit4.4生成的测试方法如下所示:publicvoidtestGetName(){//fail("Notyetimplemented");}@TestpublicvoidtestSetName(){//fail("Notyetimplemented");}@TestpublicvoidtestGetEmployeeid(){//fail("Notyetimplemented");}@TestpublicvoidtestSetEmployeeid(){//fail("Notyetimp
在Field中publicObjectget(Objectobj)方法的文档中类说Thevalueisautomaticallywrappedinanobjectifithasaprimitivetype.对于publicvoidset(Objectobj,Objectvalue)来说Iftheunderlyingfieldisofaprimitivetype,anunwrappingconversionisattemptedtoconvertthenewvaluetoavalueofaprimitivetype.所以我是对的,像getInt和setInt这样的特定原始getter和s
我正在使用EclipseKepler开发我的Java项目。我创建了一个vo并向vo添加了一些属性。要为这些属性生成getter和setter方法,我右键单击其中一个属性并转到“Source”,然后单击“GeneratesGettersandSetters”。它向我展示了属性的可用getter/setter方法。下面是屏幕截图正如您在上面的屏幕截图中看到的,Eclipse为属性sId提供了getter和setter方法publicStringgetsId(){returnsId;}publicvoidsetsId(StringsId){this.sId=sId;}get和set之后的第一
由于集合条目仅通过属性子集(hashCode()+equals())进行区分,因此有时需要对集合中包含的原始对象进行操作,这对于java.util.Set是不可能的。.我想到的唯一选择是:Map-不是一个非常简洁的解决方案。集合框架中还有其他替代方案吗?要求是:O(1)获取时间并且没有基于hashCode()+equals()的重复项结果。 最佳答案 如果再执行一次O(1)操作没有问题,您可以模拟缺少方法get(Object)用一对方法set.remove(Object)和set.add(Object).否则,我会使用Map正如您提
这个问题在这里已经有了答案:Howmockprivatemethodthatmodifyprivatevariables?(3个答案)关闭7年前。我有一个要测试的类(class)。它看起来类似于:publicclassClassUnderTest{privateDependency1dep1;privateDependency1getDependency1(){if(dep1==null)dep1=newDependency1();returndep1;}publicvoidmethodUnderTest(){....dosomethinggetDependency1().Invoke
我编写这个getter/setter以从Eclipse源菜单中列出:publicDategetDate(){returndate;}publicvoidsetDate(Datedate){this.date=date;}Sonar报告两个问题:Returnacopyof"date"&Storeacopyof"date"有解释"Mutablemembersshouldnotbestoredorreturneddirectly"和示例代码:publicString[]getStrings(){returnstrings.clone();}publicvoidsetStrings(Strin