这个问题在这里已经有了答案: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就
我是Java的新手,正在尝试找出解决以下错误的方法:错误读取CalculatorWithMemory.java:1:classCalculatorispublic,shouldbedeclaredinafilenamedCalculator.javapublicclassCalculator所以我的想法是,这意味着我必须保存2个不同的.java文件。然而,这是一个类,我只有一个提供的文本block来输入我的解决方案,所以我不能将它们保存为.java文件。任何关于解决方案的想法都会很棒。提前致谢!提供所有信息。我正在尝试解决以下问题。问题父类(superclass)计算器包含:一个(pr
在启动Tomcat时,出现以下错误:SEVERE:ExceptionlookingupUserDatabaseunderkeyUserDatabasejavax.naming.NameNotFoundException:NameUserDatabaseisnotboundinthisContextatorg.apache.naming.NamingContext.lookup(NamingContext.java:770)atorg.apache.naming.NamingContext.lookup(NamingContext.java:153)atorg.apache.catali
我有一个关于在我的域对象中生成的getter和setter方法的小问题。我想为我的源代码使用一个通用的风格指南。该风格指南的一部分说我在每个类成员名称的开头都使用前缀“m”表示成员。classUser{StringmName;ListmAllCall;ListmAllGeo;不幸的是,我有几个具有更多成员变量的类。我遇到的问题是我是一个非常懒惰的开发人员,我在Eclipse中使用创建了getter和setter方法"Source"->"GenerateGettersandSetters".结果是publicStringgetmName(){returnmName;}publicvoid
我遇到了错误Theentitynamemustimmediatelyfollowthe'&'intheentityreference.但我的XML文档中没有任何符号!有谁知道为什么会发生这种情况?这是我要解析的XML文档:BestiPadstrategygameshttp://feedproxy.google.com/~r/TheIphoneBlog/~3/198mhX3FVmw/story01.htmShareyourlifewithfriendsinrealtimewithSpinhttp://feedproxy.google.com/~r/TheIphoneBlog/~3/9G8
我的项目中有很多javabean。我需要为他们生成一个JUnit测试类。使用Eclipse3.2和junit4.4生成的测试方法如下所示:publicvoidtestGetName(){//fail("Notyetimplemented");}@TestpublicvoidtestSetName(){//fail("Notyetimplemented");}@TestpublicvoidtestGetEmployeeid(){//fail("Notyetimplemented");}@TestpublicvoidtestSetEmployeeid(){//fail("Notyetimp
我们正在将我们的应用程序从Weblogic10.3.0升级到10.3.6。当我们尝试部署它时,我们收到错误:java.lang.ClassFormatError:Duplicatemethodname&signatureinclassfile...经过进一步调查,我们发现问题是由如下代码引起的:interfaceFoo{voidfoo();}interfaceBar{voidfoo();}interfaceBazextendsFoo,Bar{}BazEJBimplementsBaz....这会导致在Baz中生成2个foo方法....ELOImpl.class,这会在我们尝试部署ear文
在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之后的第一