草庐IT

Getter-Setter

全部标签

kotlin - 如何在 Kotlin 类构造函数主体中使用自定义 setter

我找不到更好的标题来描述如何在这个Kotlin类中避免代码重复(需要表达式):classPerson(email:String){varemail:String=emailset(value){require(value.trim().isNotEmpty(),{"Theemailcannotbeblank"})field=value}init{require(email.trim().isNotEmpty(),{"Theemailcannotbeblank"})}}在java中,我会有一个带有名称验证的setter,然后我会从构造函数中调用它。在Kotlin中这样做的惯用方式是什么?

android - 实时数据和 2-Way 数据绑定(bind) : Custom setter not being called

我正在使用2路数据绑定(bind)来更新我的ViewModel中的LiveDataString对象,并在EditText中设置了一个字符串:因此,据我了解,每次EditText中的文本更改时,ViewModel都会更新其liveReviewTitle属性。我认为这是通过使用TextWatcher或图书馆为我处理的某种监听机制而发生的。我还认为,当需要更新文本时,会调用它的setter。似乎并非如此!当文本发生变化时,我需要在我的ViewModel中做更多的事情,因此我为liveReviewTitle实现了一个自定义setter,但它没有被调用(我试过调试)。这是ViewModel类中的

android - 在数据绑定(bind)中找不到属性的 setter

我在我的应用程序中使用LiveData、DataBinding和Kotlin。我为RecyclerView定义了一个绑定(bind)适配器,如下所示:classMainListBindings{privatevalTAG="TasksListBindings"companionobject{@JvmStatic@SuppressWarnings("unchecked")@BindingAdapter("main_items")funsetItems(recyclerView:RecyclerView,items:MutableLiveData>?=null){valadapter:Re

Kotlin val 差异 getter 覆盖与分配

我开始玩Kotlin并阅读了一些关于使用自定义getter的mutableval的内容。如here中所述或在KotlinCodingConvention如果结果可以更改,则不应覆盖getter。classSampleArray(valsize:Int){valisEmptyget()=size==0//sizeissetatthebeginninganddoesnotchangesothisisok}classSampleArray(varsize:Int){funisEmpty(){returnsize==0}//sizeissetatthebeginningbutcanalsoch

Kotlin - 了解 Getter 和 Setter

Kotlin自动生成它的getter和设置,但我从不引用它们?另外,在Kotlin中编写自定义getter/setter的正确方法是什么?当我说myObj.myVar=99时,我觉得myVar是我直接访问的myObj的公共(public)字段?这里到底发生了什么? 最佳答案 这已经在几个地方得到了回答,但我想我会为从Java/C#/C/C++过渡到Kotlin的人分享一个具体的例子,并且他们有同样的问题:我很难理解getter和setter在Kotlin中是如何工作的,尤其是因为它们从未被明确地调用过(就像在Java中一样)。因此,

kotlin - Interface 的函数与 Property 的 getter 冲突

接口(interface)的函数名故意与属性的getter名冲突,但由于意外覆盖问题被编译器禁止。是否可以指示编译器这是故意的?interfaceA{fungetFoo()}classB:A{valfoo} 最佳答案 此功能似乎没有以任何方式实现。@AndreyBreslav对similarquestion的评论:YoucannotoverrideJavamethodswithKotlinpropertiesatthemoment.Itwouldbeniceifwecouldsupportit,butwedon'tknowhowto

java - Kotlin 属性的私有(private) getter 和 public setter

如何在Kotlin中创建一个具有私有(private)getter(或没有它)但具有公共(public)setter的属性?varstatusprivateget不起作用并出现错误:Getter可见性必须与属性可见性相同就我而言,原因是Java互操作:我希望我的Java代码能够调用setStatus但不能调用getStatus。 最佳答案 目前在Kotlin中不可能有一个带有比该属性更可见的setter的属性。问题跟踪器中有一个语言设计问题,请随时观看/投票或分享您的用例:https://youtrack.jetbrains.com

kotlin - 覆盖 Kotlin 数据类的 getter

给定以下Kotlin类:dataclassTest(valvalue:Int)如何覆盖Intgetter以便在值为负时返回0?如果这不可能,有哪些技术可以达到合适的结果? 最佳答案 在每天花费将近一整年的时间编写Kotlin之后,我发现尝试像这样覆盖数据类是一种不好的做法。有3种有效的方法,在我介绍它们之后,我将解释为什么其他答案建议的方法不好。让创建dataclass的业务逻辑将值更改为0或更大,然后再使用错误值调用构造函数。这可能是大多数情况下的最佳方法。不要使用数据类。使用常规的class并让你的IDE为你生成equals和h

node.js - 用于规范化数据的 Mongoose getter/setter

我有User架构,其中有一个username字段。我希望这个字段区分大小写,以便用户可以注册诸如BobDylan之类的名称。但是,我需要我的架构来验证新条目以检查是否有重复的、区分大小写的,例如bobdylan。我的研究告诉我,我应该在架构中创建一个额外的字段来存储小写/大写版本,以便我可以轻松检查它是否是唯一的。我的问题是,我将如何使用MongooseAPI实现这一目标?我尝试过使用set函数,比如:UserSchema.path('username_lower_case').set(function(username_lower_case){returnthis.username.

c++ - getter 和 setter 风格

(抛开你是否应该拥有它们的问题。)我一直倾向于只使用函数重载来为getter和setter提供相同的名称。intrate(){return_rate;}voidrate(intvalue){_rate=value;}//insteadofintgetRate(){return_rate;}voidsetRate(intvalue){_rate=value;}//mainlybecauseitallowsmetowritethemuchcleanertotal(period()*rate());//insteadofsetTotal(getPeriod()*getRate());当然我是