Kotlin 速查:类名、可空类型与视图引用
255 字
1 分钟
Kotlin 速查:类名、可空类型与视图引用
摘要
这份速查记录几个容易混淆的 Kotlin 语法点。? 表示类型允许为 null,并不会自动消除空指针;Android View 引用则优先使用 View Binding。
获取类名
val simpleName = javaClass.simpleName
val qualifiedName = this::class.qualifiedName
simpleName 常用于日志标签;需要包名时使用 qualifiedName,但它的返回值是可空类型。
可空类型与安全调用
var title: String? = null
val length = title?.length ?: 0
String?允许保存null。?.仅在对象非空时访问成员。?:在左侧为空时提供默认值。!!会在值为空时抛出异常,不应作为常规空值处理方案。
类型转换
val button = view as? Button
button?.isEnabled = true
as? 转换失败时返回 null;as 转换失败会抛出 ClassCastException。如果使用 findViewById,让泛型表达目标类型:
val button = findViewById<Button>(R.id.send_button)
Android 中的推荐写法
启用 View Binding 后,布局中的 View 通过生成的绑定类访问:
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.sendButton.setOnClickListener { sendMessage() }
}
参考
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Kotlin 速查:类名、可空类型与视图引用
https://blog.mintalix.com/posts/study-kotlin-about-1/相关文章智能推荐
1
Kotlin 速查:闭区间、半开区间与 JSON 根节点
android-development比较 Kotlin 的闭区间与半开区间写法,并说明 JSON 是否保留根节点包装取决于目标数据模型。
2
从 Kotlin synthetic 迁移到 View Binding
android-development解释 Kotlin Android Extensions synthetic 视图访问为何消失,并使用官方支持的 View Binding 完成替代。
3
排查 Android 深色主题下的标题栏冲突
android-development说明 windowActionBar 与 windowNoTitle 的真实作用,并给出在深色主题中排查重复标题栏和主题继承问题的方法。
4
[译] 一种面向时空可组合性的编程范式
paper2026.08.14 deepseek-harness-paper 的ai翻译版本
5
Android Studio 启动与 Gradle 插件故障排查
android-development处理禁用关键插件导致 Android Studio 无法启动,以及代理配置导致 Gradle 插件无法解析的两类环境问题。
随机文章随机推荐


