当前位置: 首页 > 知识库问答 >
问题:

Kotlin:返回“this”[重复]的默认设置程序

鄢雅畅
2023-03-14

我知道这不是“严格按照设计模式”之类的,但是...

var foo:Bar = Something()
    set(f:Bar) {
       foo = f
       return this // Alas, that would not compile because Setter returns Unit
    }
BlahBlah().setFoo(x).setFoo2(y)...
BlahBlah.Builder().setFoo(x)....
var b = BlahBlah()
b.setFoo(x)
b.setFoo2(y)
...

或者别的什么

此外,如果setter返回unit,为什么不返回this呢?

共有1个答案

宰父疏珂
2023-03-14

关于如何创建类型安全生成器,Kotlin有很好的文档。Kotlin中的setter被调用

receiver.property = value

从setter方法返回这个只在使用Java代码的情况下才会有所帮助。话虽如此,Kotlin setter必须返回unit。即使没有专门的构建器,在一个对象上设置几个属性的典型任务在Kotlin中也要简洁得多:

class BlahBlah {
  var name = "John"
  var age = 12
}

BlahBlah().apply {
  name = "Sarah"
  age = 10
}
 类似资料:
  • 我使用Java和Jackson库将JSON文件解析为Java类。我的问题是,如果值为null或空,我无法设置默认值。有可能吗?现在,我只是把它写在setters部分。 例如,我有一个JSON文件 在我的Java类中,如果值为null或空,我想将其设置为Java函数。 举个例子 所以,如果设置了这个值,那么就是它。如果不是,那应该是美国。

  • 如何设置ng选项的默认值。。。 以下是我的ng选项指令:

  • 默认回复 设置默认回复快捷键 后台回复素材设置-发消息-回复消息

  • 这个函数总是返回null. t是不被分配与令牌值.有人能帮助请?

  • 问题内容: 我希望模仿允许用户指定“默认”返回值的内置函数(如)的行为。我最初的尝试是这样做 问题是,如果用户希望成为其返回值,则此函数将引发异常。第二次尝试: 这解决了上述问题,并允许用户指定任何任意值,但是带来了麻烦,因为用户必须始终在其函数调用中进行指定;他们不能只提供最后。同样,可以使用,但如果用户偏爱该语法,则会阻止用户使用。 结合并提供了可行的解决方案,但感觉这需要付出很多努力。它还可

  • 问题内容: 我遇到了AngularJS的问题-无法在中显示选定的值。 这是我的用例: 我有一个以ng-repeat开头的视图,用于显示组件。每个组件都包含一个选择以选择增值税率。创建新项目时,看起来不错。但是,当我编辑现有项目时,实际的vatRate代码未显示在select中,而是看到默认选项“-SelectVAT Rate-”而不是所选的VAT。 我的模型仅包含增值税率的ID。 通过一个组件,我