访问公共类 (Kotlin)

Posted

技术标签:

【中文标题】访问公共类 (Kotlin)【英文标题】:Accessing a public class (Kotlin) 【发布时间】:2021-09-14 20:14:34 【问题描述】:

我是 kotlin 和 android studio(我正在使用)的新手,所以这很简单,但是我在编写教程时遇到了这个问题

问题很简单:

我有两个 kotlin 类(MainActivity 和为什么)。为什么包含我想在 MainActivity 中调用的函数测试。

我该怎么做?

在本教程中,我只是在 MainActivity 中这样称呼它

why.test()

(完整代码如下)

但是当我尝试这样做时,我得到了错误:

“未解决的参考:第 13 行测试”(我称之为测试)。

为什么会这样?我该如何让它发挥作用?

代码:

MainActivity 类:

package com.example.tester

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() 
    override fun onCreate(savedInstanceState: Bundle?) 
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        work()
    
    private fun work() 
        why.test()
    

为什么类中的测试函数:(在这个例子中测试什么都不做)

package com.example.tester

class why 
    fun test() 
        var i = 0;
    

【问题讨论】:

你确定教程没有why().test()吗? why 后面有括号?或者,他们是否可能将why 声明为object 而不是class 【参考方案1】:

我认为“测试”应该是静态的(或创建why 的对象),如下所示:

package com.example.tester

class why 
   companion object  
     fun test() 
        var i = 0;
      
   

见What is the equivalent of Java static methods in Kotlin?

【讨论】:

以上是关于访问公共类 (Kotlin)的主要内容,如果未能解决你的问题,请参考以下文章

Proguard 保留公共类、字段和方法

Java访问权限-动力节点

从单独的类文件访问公共静态类的状态

数据访问公共类

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

为啥我不能从其他类访问公共变量?