将参数传递给kotlin中的自定义getter

Far*_*deh 5 kotlin

我一直在阅读Kotlin的房产,包括定制的吸气剂和制定者.

但是,我想知道是否可以创建一个带有额外参数的自定义getter.

例如,请考虑Java中的以下方法:

public String getDisplayedValue(Context context) {
    if (PrefUtils.useImperialUnits(context)) {
        // return stuff
    } else {
        // return other stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,静态方法PrefUtils必须Context具有参数,因此不能选择删除它.

我想在Kotlin中这样写:

val displayedValue: String
    get(context: Context) {
        return if (PrefUtils.useImperialUnits(context)) {
            // stuff
        } else {
            // other stuff
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是我的IDE用红色突出了所有这些.

我知道我可以在我的类来获得所显示的值的函数,而这将意味着我将不得不使用.getDisplayedValue(Context)在科特林的能够通过名字来引用该属性作为以及代替.displayedValue.

有没有办法创建这样的自定义getter?

编辑:如果没有,最好为此编写一个函数,或传递Context给类构造函数的参数?

Szö*_*dám 10

据我所知,属性getter不能有参数.写一个函数代替.