Kotinでインスタンスメソッド内でコンストラクタからプロパティを使用する方法?

ニコ:

これは私のコードです。

class Repository(context: Context) {

    // Can access 'context' from here
    val mSharedPrefsProperties = context
        .getSharedPreferences(context.packageName.plus(".properties"), Context.MODE_PRIVATE)

    // Can't access 'context' in this function (unresolved reference: context)
    private fun getApiKey(): String {
        val apiKeys = context.resources.getStringArray(R.array.api_keys)
        val random = Random().nextInt(apiKeys.size)
        return apiKeys[random]
    }
}

関数内のコンストラクタからプロパティにアクセスする方法はありますか私はそれらのインスタンス/ローカル変数にする必要がありますか?

s1m0nw1:

シンプルなコンストラクタのパラメータは、あなたのクラスのプロパティにはなりません。それだけでexplitlyそれらを作ることによって起こりますvarvalあなたは、それにもかかわらず、例えば、初期化に関連するもので、これらの簡単なのparamsにアクセスすることができます。

class ConstWithArg(param1: String) {
    init {
        println(param1)
    }

    val field1 = param1.length
    var field2 = param1.length

}

あなたは建設後のパラメータにアクセスする必要がある場合、それは作ることによって財産になるはずですvalあなたは誰があなたのクラスの外に、このフィールドにアクセスしたくない場合は、プライベートとしてマーク:

class ConstWithArg(private val param1: String) {

    fun useProp(){
        println(param1)
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=282977&siteId=1