【发布时间】:2016-08-05 06:57:28
【问题描述】:
我一直在阅读 Kotlin 中的 properties,包括自定义 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 用红色突出显示了所有这些。
我知道我可以在我的类中创建一个函数来获取显示的值,但这意味着我也必须在 Kotlin 中使用 .getDisplayedValue(Context),而不是像 @ 中那样按名称引用属性987654327@.
有没有办法像这样创建自定义 getter?
编辑:如果没有,最好为此编写一个函数,还是将Context 传递给类构造函数的参数?
【问题讨论】:
-
完全一样的场景!这是一个小世界,谢谢你先问:P
标签: kotlin