properties - Kotlin - 可空属性默认为空值
问题描述
假设我定义了一个具有可为空属性的类
class ABC {
var myProperty: String? = null
}
有没有办法将其默认为空值?也许类似于 SCALA 的东西?
var myProperty: String? = _ // compilation error
或者简单地说:
var myProperty: String? // compilation error
我知道我们可以使用来自 Kotlin 1.2 的lateinit变量,以后可以像这样检查初始化:
lateinit var myProperty: String
if (::myProperty.isInitialized) {
//value is not-null
}
那么 lateinit 是首选方式吗?是否可以默认为空值或故意省略?
解决方案
Kotlin 有意要求您显式初始化所有属性。没有速记语法。对于可为空类型的属性,首选方法不是使用lateinit
,而是使用null
初始化程序声明它。
isInitialized
属性方法lateinit
旨在处理诸如清理资源之类的复杂情况;null
对于希望节省书面= null
作为财产声明一部分的用户,它不打算用作支票的替代品。
推荐阅读
- java - 如何在 java spring 中获取外部 jar 异常?
- java - 通过匿名类声明新线程的最佳方法是什么?
- php - PHP 7.4.3 数组未插入?
- docker - 试图从浏览器查看在我的机器上运行的 docker 容器
- reactjs - 专辑卡不在行方向上弯曲 - ipad 视图
- node.js - TypeORM 命令不返回任何内容
- flutter - 使用不包含 TaharatBloc 类型的 Bloc 的上下文调用 BlocProvider.of()
- gitlab - 如何编写 .gitlab-ci.yml 以根据条件构建/部署
- node.js - 为什么 node.js 在服务器重启后不加载网站?
- python - 如何向其中添加多个项目?