如何从 kotlin 中的内部对象类访问类级别变量

Posted

技术标签:

【中文标题】如何从 kotlin 中的内部对象类访问类级别变量【英文标题】:How to access class level variables from inner object class in kotlin 【发布时间】:2020-04-12 18:25:25 【问题描述】:

我正在使用 branchSDK,它在活动 lcas 中创建 Object 类。我需要从此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】:

我不使用分支。从他们用 Java 编写的基本指令here 来看,等价的将是分配给属性的匿名对象,该属性确实可以访问外部类成员:

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)
        
    

当你发出某种请求时,大概有一些函数可以传递给这个监听器,但没有提到它(我从他们的说明中读到的唯一一页)。

【讨论】:

以上是关于如何从 kotlin 中的内部对象类访问类级别变量的主要内容,如果未能解决你的问题,请参考以下文章

kotlin对象表达式

为什么内部类访问的外部变量需要使用final修饰

在 Kotlin 中如何从不同的模块访问内部成员

[Kotlin] 内部类

无法访问kotlin子类中的父类变量

为什么匿名内部类和内部类只能访问final局部变量