私はカスタムgetterとsetterを含め、Kotlinのpropertiesについて読んでいます。kotlinのカスタムゲッターにパラメータを渡す
しかし、余分なパラメータでカスタムゲッターを作成できるかどうかは疑問でした。
は例えば、Javaで次のような方法を考えてみます。PrefUtils
での静的メソッドは、パラメータとしてContext
を持つ必要が
public String getDisplayedValue(Context context) {
if (PrefUtils.useImperialUnits(context)) {
// return stuff
} else {
// return other stuff
}
}
注ことなので、これはオプションではありません取り除きます。
私はKotlinでこのようにそれを書きたいと思います:
val displayedValue: String
get(context: Context) {
return if (PrefUtils.useImperialUnits(context)) {
// stuff
} else {
// other stuff
}
}
しかし、私のIDEは赤で、このすべてを強調しています。
表示された値を取得するためにクラスに関数を作成することができますが、.displayedValue
のようにプロパティを参照する代わりに.getDisplayedValue(Context)
をKotlinでも使用する必要があることを意味します。
このようなカスタムゲッターを作成する方法はありますか?
EDIT:そうでない場合、このための関数を書くか、Context
をクラスコンストラクタのパラメータに渡すのが最善でしょうか?
が、それは悪い習慣がカスタムゲッターに使用するクラスのコンストラクタのパラメータに 'Context'を渡すだろうか? –
これは最も簡単な方法ではありませんが、プロパティの構文が必要な場合は、それを行います – voddan