这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whyusegettersandsetters?这是一个新手问题。是否非常有必要使用getmethods来访问属性值?一旦分配了值,就可以获得值目录。例如,在下面的代码中,displayName()可以在不借助任何getter方法的情况下显示firstName值。或者它是一种标准的编码标准,必须具有getter和setter方法或提供该值的任何其他方法?classTest{privateStringfirstName;publicvoidsetName(Stringfname){firstName=fname
老师要我们做综合单元测试。对我来说,这将是我第一次使用JUnit。我对测试集和获取方法感到困惑。你认为我应该测试它们吗?如果答案是肯定的;这段代码是否足以进行测试?publicvoidtestSetandGet(){inta=10;ClassfirstClass=newClass();firstClass.setValue(10);intvalue=firstClass.getValue();Assert.assertTrue("Error",value==a);}在我的代码中,我认为如果有错误,我们无法知道错误是由于setter或getter而派生的。 最
我看不出以下两种创建setter的方法之间有什么真正的区别,但我想知道我是不是太天真了。一个比另一个更受欢迎吗?publicvoidfooSetter(Stringbar){_bar=bar;}publicvoidfooSetter(Stringbar){this._bar=bar;} 最佳答案 在这种情况下没有语义差异,因为没有歧义。另一方面,如果您的实例字段也称为bar,则需要使用this来消除歧义:publicvoidfooSetter(Stringbar){this.bar=bar;}
我正在使用TDD,并且有一个非常典型的编码模式,在我编写单元测试代码时使用Eclipse自动创建方法和字段。例如:输入不存在的方法名,例如:myObj.setValue(someValue);单击IDE中的红色小错误标记以创建“setValue”方法。在setValue方法中输入:publicvoidsetValue(字符串值){this.value=值;}单击红色错误标记以自动创建私有(private)字段(在本例中称为“值”);所以在这一点上,我希望Eclipse自动创建getter方法,而不必使用source->generategettersandsetters菜单。我看到了这个
通过JavaAPI,您会看到许多冲突的命名和实践,这让我很困惑。例如:String类有一个名为count的私有(private)变量(Integer),它跟踪字符串的大小,但是这是由名为length()的getter返回的>.如果你转向任何类型的数组,它们没有长度的getter方法,它们只是通过公共(public)访问器传递变量,并且可以通过arrayInstance.length获取。回到String类,我们有String#getBytes()方法,它是一个getter,类似于length()getter,但是执行的逻辑稍微多一些获取并返回值。就我个人而言,创建一个前缀为get的ge
我正在为BraintreeJava库编写Clojure包装器,以提供更简洁和惯用的界面。我想提供一些函数来快速简洁地实例化Java对象,例如:(transaction-request:amount10.00:order-id"user42")我知道我可以明确地做到这一点,如thisquestion所示:(defntransaction-request[&{:keys[amountorder-id]}](doto(TransactionRequest.)(.amountamount)(.orderIdorder-id)))但这对于许多类来说是重复的,并且当参数是可选的时变得更加复杂。使用
我想将getter添加到array.protype中以获取数组的最后一个元素。我这样做了:Object.defineProperty(Array.prototype,'last',{get:function(){returnthis[this.length-1];}});这适合记忆吗?我担心的是,如果您实例10000对象:我希望我在内存中只有1个功能我担心的是,我可能有10000*1=10000功能在内存中我的目标是这样使用:constarr=[{},{},{},{}];arr.last===arr[arr.length-1];看答案它以您想要的方式工作,每个实例的原型指的是同一对象。在Jav
我知道私有(private)实例变量是通过它们的公共(public)getter和setter方法访问的。但是当我借助IDE生成构造函数时,它直接初始化实例变量,而不是通过它们的setter方法初始化它们。Q1。因此,我是否应该更改IDE为构造函数生成的代码,以通过它们的setter方法初始化这些实例变量。Q2。如果是,那么为什么IDE不以这种方式生成构造函数代码?=============================编辑=======================================我使用Eclipse和NetbeansIDE这是一个一般性问题。但正如@Lords所
在使用Gson的fromJson方法时,是否可以使用给定类的set方法?我想这样做是因为对于目标类的每个String全局变量都会进行修剪。是否有任何GSONAPI注释?我知道GSON提供了编写自定义序列化器/反序列化器的能力,但我想知道是否有其他方法可以实现这一点。 最佳答案 没有,没有。Gson主要通过实例字段的反射来工作。因此,如果您不打算搬到具有此功能的jackson,我认为您无法通过通用方式来调用您的二传手。所以没有注释。但是为了满足您的特定需求,您可以:写你自己的习惯TypeAdapter或创建一个包含您要修剪的字符串的构
我在lombok中有一个boolean变量hasObject,它生成isHasObject()。我正在使用@Datalombok注释。如何将方法更改为hasObject() 最佳答案 在你的情况下它可能是:classXY:Object{@Getter(fluent=true)publicbooleanhasObject;}或@Accessors(fluent=true)classXY:Object{publicbooleanhasObject;}根据文档:fluent-Aboolean.Iftrue,thegetterforpepp