我一直在阅读 properties在 Kotlin 中,包括自定义 getter 和 setter。
但是,我想知道是否可以创建带有额外参数的自定义 getter。
例如,考虑 Java 中的以下方法:
public String getDisplayedValue(Context context) {
if (PrefUtils.useImperialUnits(context)) {
// return stuff
} else {
// return other stuff
}
}
注意
PrefUtils
中的静态方法必须有Context
作为参数,因此删除它不是一种选择。我想在 Kotlin 中这样写:
val displayedValue: String
get(context: Context) {
return if (PrefUtils.useImperialUnits(context)) {
// stuff
} else {
// other stuff
}
}
但是我的 IDE 以红色突出显示了所有这些。
我知道我可以在我的类中创建一个函数来获取显示的值,但这意味着我必须使用
.getDisplayedValue(Context)
在 Kotlin 中也是如此,而不是像 .displayedValue
那样能够通过名称来引用属性。 .有没有办法创建这样的自定义 setter/getter ?
编辑:如果没有,最好为此编写一个函数,还是通过
Context
进入类构造函数的参数?
最佳答案
据我所知,属性 getter 不能有参数。而是写一个函数。
关于kotlin - 将参数传递给 kotlin 中的自定义 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38684318/