如何在Kotlin中全局声明变量,以便可以在A类中访问在B类中声明的变量?

val fpath: Path = Paths.get("")

我希望能够在整个程序/项目中访问fpath变量。
附言我是Kotlin的新手。任何帮助,将不胜感激。

最佳答案

第一:只要能见度允许,访问另一个类别的属性并不难。默认情况下,没有显式可见性修饰符,它是:

class A{
    val fpath= ...
}

class B(val a: A){
    fun xy() = print(“accessing property of A: ${a.prop}”)
}

第二:您应该对示例变量fpath进行的操作是将其定义为顶级元素,即直接在文件中,只需导入该元素即可从其他任何位置进行访问。

例如,您可以在Common.kt包中包含一个com.x文件,其中包含fpath = Paths.get(...)。在另一个文件中,执行import com.x.fpath并在整个文件中使用它。

第三:如果属于该变量,还可以在companion objectA中定义该变量:
class A {
    companion object {
        val fpath = ...
    }
}

class B{
    fun xy() = print(“accessing property of A: ${A.fpath}”)
}

10-04 10:32