草庐IT

getter-setter

全部标签

android - 如何在 Android Studio 的 Alt-Insert getter/setter 中设置要删除的前缀(例如 "m")?

我让我的大多数成员变量以字母“m”开头,例如mId或mIsSomething。当我使用键盘快捷键添加getter/setter时,我最终得到:publicvoidsetmId(){}但我想要:publicvoidgetId(){}如何在创建getter/setter时为其设置要移除的前缀? 最佳答案 我找到了解决办法:转到文件->其他设置->默认设置在搜索框中,输入“前缀”。在右侧,选择“代码生成”选项卡。在“前缀”框中,输入m(或任何前缀) 关于android-如何在AndroidSt

android - 如何在 Android Studio 的 Alt-Insert getter/setter 中设置要删除的前缀(例如 "m")?

我让我的大多数成员变量以字母“m”开头,例如mId或mIsSomething。当我使用键盘快捷键添加getter/setter时,我最终得到:publicvoidsetmId(){}但我想要:publicvoidgetId(){}如何在创建getter/setter时为其设置要移除的前缀? 最佳答案 我找到了解决办法:转到文件->其他设置->默认设置在搜索框中,输入“前缀”。在右侧,选择“代码生成”选项卡。在“前缀”框中,输入m(或任何前缀) 关于android-如何在AndroidSt

c++ - 让所有 setter 函数返回对 c++ 中对象的引用是否很好?

让所有的setter函数都返回对c++中对象的引用好吗? 最佳答案 如果需要在对象上设置很多东西,这是一个足够可用的模式。classFoo{intx,y,z;public:Foo&SetX(intx_){x=x_;return*this;}Foo&SetY(inty_){y=y_;return*this;}Foo&SetZ(intz_){z=z_;return*this;}};intmain(){Foofoo;foo.SetX(1).SetY(2).SetZ(3);}这个模式替换了一个需要三个整数的构造函数:intmain(){Fo

c++ - 让所有 setter 函数返回对 c++ 中对象的引用是否很好?

让所有的setter函数都返回对c++中对象的引用好吗? 最佳答案 如果需要在对象上设置很多东西,这是一个足够可用的模式。classFoo{intx,y,z;public:Foo&SetX(intx_){x=x_;return*this;}Foo&SetY(inty_){y=y_;return*this;}Foo&SetZ(intz_){z=z_;return*this;}};intmain(){Foofoo;foo.SetX(1).SetY(2).SetZ(3);}这个模式替换了一个需要三个整数的构造函数:intmain(){Fo

c++ - 为什么人们要编写返回非常量引用的私有(private)字段 getter?

我们都同意公共(public)变量不利于封装等等。但是,我注意到很多代码都在做这种事情:classfoo{private:intinteger_;stringsomeString_;//othervariablespublic:int&integer(){returninteger_;}string&someString(){returnsomeString_;}//other"functions"}intmain(){foof;f.integer()=10;f.someString()="something";return0;}我已经看到很多地方都在使用它,但我不明白为什么。基本上,

c++ - 为什么人们要编写返回非常量引用的私有(private)字段 getter?

我们都同意公共(public)变量不利于封装等等。但是,我注意到很多代码都在做这种事情:classfoo{private:intinteger_;stringsomeString_;//othervariablespublic:int&integer(){returninteger_;}string&someString(){returnsomeString_;}//other"functions"}intmain(){foof;f.integer()=10;f.someString()="something";return0;}我已经看到很多地方都在使用它,但我不明白为什么。基本上,

c++ - 如何正确 "perfect forward"getter 函数?

我正在为C++14创建一个JSON库,并且尽可能使用move语义。我的Value类有几个setter和getter,它们总是尽可能地尝试move:templatevoidsetObj(T&&x){type=Obj;hObj.init(forward(x));}templatevoidsetArr(T&&x){type=Arr;hArr.init(forward(x));}templatevoidsetStr(T&&x){type=Str;hStr.init(forward(x));}auto&getObj()&noexcept{assert(is());returnhObj;}auto

c++ - 如何正确 "perfect forward"getter 函数?

我正在为C++14创建一个JSON库,并且尽可能使用move语义。我的Value类有几个setter和getter,它们总是尽可能地尝试move:templatevoidsetObj(T&&x){type=Obj;hObj.init(forward(x));}templatevoidsetArr(T&&x){type=Arr;hArr.init(forward(x));}templatevoidsetStr(T&&x){type=Str;hStr.init(forward(x));}auto&getObj()&noexcept{assert(is());returnhObj;}auto

java - 为什么继续对不可变对象(immutable对象)使用 getter?

使用不可变对象(immutable对象)已变得越来越普遍,即使手头的程序从未打算并行运行。然而我们仍然使用getter,每个字段需要3行样板代码,每次访问需要5个额外字符(使用您最喜欢的主流OO语言)。虽然这看起来微不足道,而且许多编辑器无论如何都减轻了程序员的大部分负担,但这似乎仍然是不必要的努力。继续使用访问器而不是直接访问不可变对象(immutable对象)的原因是什么?具体来说,强制用户使用访问器(对于客户端或库编写器)有什么好处,如果是,它们是什么?请注意,我指的是不可变对象,与question不同,它指的是一般的对象。需要明确的是,不可变对象(immutable对象)没有s

java - 为什么继续对不可变对象(immutable对象)使用 getter?

使用不可变对象(immutable对象)已变得越来越普遍,即使手头的程序从未打算并行运行。然而我们仍然使用getter,每个字段需要3行样板代码,每次访问需要5个额外字符(使用您最喜欢的主流OO语言)。虽然这看起来微不足道,而且许多编辑器无论如何都减轻了程序员的大部分负担,但这似乎仍然是不必要的努力。继续使用访问器而不是直接访问不可变对象(immutable对象)的原因是什么?具体来说,强制用户使用访问器(对于客户端或库编写器)有什么好处,如果是,它们是什么?请注意,我指的是不可变对象,与question不同,它指的是一般的对象。需要明确的是,不可变对象(immutable对象)没有s