Как получить доступ к переменным уровня класса из класса внутреннего объекта в kotlin - PullRequest
0 голосов
/ 12 апреля 2020

Я использую BranchSDK, он создает класс Object внутри действия lcass. Мне нужно получить доступ к переменным уровня класса из этого object класса.

Следуя классу внутреннего объекта, эта ветвь создана.

 object branchListener : Branch.BranchReferralInitListener {
        override fun onInitFinished(referringParams: JSONObject?, error: BranchError?) {
            if (error == null) {
                Log.i("BRANCH_SDK", referringParams.toString())

                if(referringParams?.has("news") ==true){

                }

            } else {
                Log.e("BRANCH_SDK", error.message)
            }
        }
    }

1 Ответ

0 голосов
/ 13 апреля 2020

Я не использую Branch. Если посмотреть на их базовые c инструкции здесь , написанные на Java, эквивалентным будет анонимный объект, назначенный свойству, который имеет доступ к внешним членам класса:

val branchListener = object: Branch.BranchReferralInitListener {
    override fun onInitFinished(referringParams: JSONObject?, error: BranchError?) {
        if (error == null) {
            Log.i("BRANCH_SDK", referringParams.toString())

            if(referringParams?.has("news") == true){

            }

        } else {
            Log.e("BRANCH_SDK", error.message)
        }
    }
}

Предположительно, есть некоторая функция, к которой этот слушатель может быть передан, когда вы делаете какой-то запрос, но об этом не упоминалось (единственная страница, которую я прочитал из их инструкций).

...