gpt4 book ai didi

android - Kotlin 中 "ClassInstance.[Someclass::class.java]"是什么意思?

转载 作者:行者123 更新时间:2023-12-05 00:13:18 25 4
gpt4 key购买 nike

我见过有人使用 ViewModelProvider[Someclass::class.java] 而不是 ViewModelProvider.get(Someclass::class.java),它在 Android Studio 中编译。问题是我无法在网上找到任何此类用法的文档。 example

最佳答案

使用 kotlin,您可以将运算符修饰符添加到您的函数中。因此,如果您有一些带有 get 函数的类,并且您可能希望使用 [] 访问它,例如数组或映射,您可以添加 operator修饰符。

Square brackets are translated to calls to get and set with appropriate numbers of arguments.

所以这只适用于名称为 getset 的函数!

class Provider {
operator fun get(key: String)
operator fun set(key: String, value: String) { ... }
}

然后你可以这样调用这个函数:

Provider().get("key") // IDE hint: should be replaced with indexing operator
Provider()["key"] // calls get()

Provider().set("key", "value") // IDE hint: should be replaced with indexing operator
Provider()["key"] = "value" // calls set()

引用

关于android - Kotlin 中 "ClassInstance.[Someclass::class.java]"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65665401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com