android-studio - Kotlin:如何进行 Class().fooA().fooB()
问题描述
我目前正在将我的代码技能提升到更高级的水平,以实现“更容易维护代码”,我遇到了这个问题
val attachView = Custom()
attachView.setRoot(root)
attachView.setAdded(add)
attachView.build()
那些代码,你可以看到我一遍又一遍地调用 attachView。它工作正常,但我希望它通过消除多次调用 attachView 来更紧凑。我的最终目标就是这样
Custom().setRoot().setAdded().build()
为了构建类似的东西,我必须知道什么方法吗?
解决方案
没有外部方法会给你这样的语义:
Custom().setRoot().setAdded().build()
它可以通过改变Customer
类的内部来实现。这样setRoot()
andsetAdded()
就会返回this
。像fun setRoot(root: Root): Custom
等。
使用 Kotlin,您可以使用多个函数来避免attachView.
在方法调用之前添加。喜欢
-和
with(Custom()) {
setRoot(root)
setAdded(add)
build()
}
-申请
Custom().apply {
setRoot(root)
setAdded(add)
build()
}
推荐阅读
- docker - 通过 buildx 将缓存推送到不安全的注册表
- arrays - 如何从数组中创建路由
- flutter - Flutter TextField controller.clear() 将多次调用 onChanged
- html - 将作为 Angular 指令一部分的嵌套 HTML 元素的宽度设置为与父元素相同的宽度?
- android - 新的活动结果 API 和 Google Pay
- python - python中的Colorplot具有更平滑的分辨率,无需插值
- python - 如何在 python-telegram 库中提供 object_ptr 数据
- css - 从 CSS 模块访问公用文件夹
- sql - 我们可以在 oracle PL/SQL 中调用函数内部的过程吗?如果不是那为什么?
- android - 适用于 Kotlin Android Studio 的 Firebase 特定库