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

Posted

技术标签:

【中文标题】无法访问kotlin子类中的父类变量【英文标题】:Not able to access parent class variable in child class in kotlin 【发布时间】:2019-12-04 12:42:15 【问题描述】:

在 kotlin 中,我试图在子类中使用父类变量,但我无法使用它们,因为我是 kotlin 新手,我不明白如何简单地做到这一点

我正在尝试访问 sharedPerfernces 并获取但它给了我 null

class webViewActivity : AppCompatActivity

 internal var shared_preferences: SharedPreferences? = null


override fun onCreate(savedInstanceState: Bundle?) 
        super.onCreate(savedInstanceState)
        shared_preferences = this.getPreferences(Context.MODE_PRIVATE)

        mContext = this
    


class javascriptInterface(private val mContext: Context) 

 @JavascriptInterface
        fun exampleGet(path: String): String 
            return webViewActivity().shared_preferences!!.getString(path, "")

//here shared_perferences is null 
        





为什么在子类中没有父类的构造函数我无法访问父类变量。给我一些建议,不胜感激

【问题讨论】:

【参考方案1】:

JavaScriptInterface 类之前添加inner

就这样:

inner class JavaScriptInterface(private val mContext: Context) 

    @JavascriptInterface
    fun exampleGet(path: String): String 
        return shared_preferences!!.getString(path, "")
    

【讨论】:

感谢您的建议,通过使用内部我可以访问父类变量,但我的 kotlin 活动仍然无法像我以前的 java 活动那样工作 请详细说明 哦..这是我的错误。现在正在工作。感谢您的帮助

以上是关于无法访问kotlin子类中的父类变量的主要内容,如果未能解决你的问题,请参考以下文章

关于protected在子类创建父类对象无法访问父类protected方法或成员

子类从 Java 中的父类更改受保护的变量

我们可以在父类的帮助下访问不同包中的受保护变量吗?

子类能不能继承父类的成员变量

Java中多态

子类可以继承父类的一切方法,成员变量,甚至是私有的,但是却不能够访问这些私有的成员变量和方法