草庐IT

java - getter 方法的必要性

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whyusegettersandsetters?这是一个新手问题。是否非常有必要使用getmethods来访问属性值?一旦分配了值,就可以获得值目录。例如,在下面的代码中,displayName()可以在不借助任何getter方法的情况下显示firstName值。或者它是一种标准的编码标准,必须具有getter和setter方法或提供该值的任何其他方法?classTest{privateStringfirstName;publicvoidsetName(Stringfname){firstName=fname

java - setter 和 getter 的单元测试

老师要我们做综合单元测试。对我来说,这将是我第一次使用JUnit。我对测试集和获取方法感到困惑。你认为我应该测试它们吗?如果答案是肯定的;这段代码是否足以进行测试?publicvoidtestSetandGet(){inta=10;ClassfirstClass=newClass();firstClass.setValue(10);intvalue=firstClass.getValue();Assert.assertTrue("Error",value==a);}在我的代码中,我认为如果有错误,我们无法知道错误是由于setter或getter而派生的。 最

java - Eclipse:如何在添加字段时自动生成getter?

我正在使用TDD,并且有一个非常典型的编码模式,在我编写单元测试代码时使用Eclipse自动创建方法和字段。例如:输入不存在的方法名,例如:myObj.setValue(someValue);单击IDE中的红色小错误标记以创建“setValue”方法。在setValue方法中输入:publicvoidsetValue(字符串值){this.value=值;}单击红色错误标记以自动创建私有(private)字段(在本例中称为“值”);所以在这一点上,我希望Eclipse自动创建getter方法,而不必使用source->generategettersandsetters菜单。我看到了这个

可访问数据的 Java 约定。 (公共(public)访问器和 getter /命名)

通过JavaAPI,您会看到许多冲突的命名和实践,这让我很困惑。例如:String类有一个名为count的私有(private)变量(Integer),它跟踪字符串的大小,但是这是由名为length()的getter返回的>.如果你转向任何类型的数组,它们没有长度的getter方法,它们只是通过公共(public)访问器传递变量,并且可以通过arrayInstance.length获取。回到String类,我们有String#getBytes()方法,它是一个getter,类似于length()getter,但是执行的逻辑稍微多一些获取并返回值。就我个人而言,创建一个前缀为get的ge

添加一个getter到array.protype

我想将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

Java - 是否应该通过 getter 和 setter 方法在构造函数中访问私有(private)实例变量?

我知道私有(private)实例变量是通过它们的公共(public)getter和setter方法访问的。但是当我借助IDE生成构造函数时,它直接初始化实例变量,而不是通过它们的setter方法初始化它们。Q1。因此,我是否应该更改IDE为构造函数生成的代码,以通过它们的setter方法初始化这些实例变量。Q2。如果是,那么为什么IDE不以这种方式生成构造函数代码?=============================编辑=======================================我使用Eclipse和NetbeansIDE这是一个一般性问题。但正如@Lords所

java - 为具有前缀 "has"的 boolean 成员编辑 lombok getter 方法名称

我在lombok中有一个boolean变量hasObject,它生成isHasObject()。我正在使用@Datalombok注释。如何将方法更改为hasObject() 最佳答案 在你的情况下它可能是:classXY:Object{@Getter(fluent=true)publicbooleanhasObject;}或@Accessors(fluent=true)classXY:Object{publicbooleanhasObject;}根据文档:fluent-Aboolean.Iftrue,thegetterforpepp

c++ - 惰性构造 - 虚拟方法与 if-then stub setter/getter

我的问题的背景是我试图创建一个惰性网格结构,其中网格区域仅在需要时实例化,否则它们在查询时返回默认值。稍微归结一下这个问题,考虑一下我的情况的以下模型:structContainer{std::vectordata;floatget(intindexOuter,intindexInner){returndata[indexOuter].get(indexInner);}}我想stubBase::get在某些情况下函数总是返回相同的值,而在其他情况下我想返回某个数组中的值。我想象两种可能的解决方案。第一个解决方案是在Base上使用标志,即structBase{std::vectordat

c++ - 在 C++ 中重载 setter/getter ?

早安,我不确定如何用一句话正确描述我所询问的过程,所以请原谅标题。我正在寻找一种方法来确保基类和/或接口(interface)的用户将分配将由对象本身和其他对象以非默认方式视为的数据。所以我一直在做以下事情:structExampleInterface{virtualvoidSomeMethod()=0;virtualstd::stringWhatLooksLikeAGetterButIsNot()=0;};这是一个真实的例子://Sostatescanbe"popedinandout".//structState{//Toretrivewhattheactivestateiscall

c++ - setter / getter 和分层数据结构

我知道在您的类(class)中拥有公共(public)领域被认为是一个坏主意。但是,当您的类包含大量分层数据结构和字段时,最好的方法是什么?例如:classA{Bd1;Cd2;Dd3;}classB{Ed4;Fd5;}classE{Gd6;intd7;}在C中很容易访问这样的数据结构,例如ptr_to_A->d1.d4.d7等等...但是当我们使用setters/getters时,方法是什么?在C++中使用setter和getter时,像A.get_d1().get_d4().get_d7()这样的表达式看起来不太方便,它们会强制返回引用。由于某些结构非常大,按值返回似乎是个糟糕的主意