【发布时间】:2018-02-20 21:59:30
【问题描述】:
如何在 Kotlin 中全局声明一个变量,以便在 Class A 中声明的变量可以在 Class B 中访问?
val fpath: Path = Paths.get("")
我希望能够在整个程序/项目中访问变量fpath。
附言我是 Kotlin 的新手。任何帮助,将不胜感激。
【问题讨论】:
-
通常,您将变量传递给需要它的事物。
标签: kotlin
如何在 Kotlin 中全局声明一个变量,以便在 Class A 中声明的变量可以在 Class B 中访问?
val fpath: Path = Paths.get("")
我希望能够在整个程序/项目中访问变量fpath。
附言我是 Kotlin 的新手。任何帮助,将不胜感激。
【问题讨论】:
标签: kotlin
首先:访问另一个类的属性并不难,只要它的可见性允许。默认情况下,没有显式可见性修饰符,它是:
class A{
val fpath= ...
}
class B(val a: A){
fun xy() = print(“accessing property of A: ${a.prop}”)
}
第二:您应该对示例变量 fpath 做的事情是将其定义为顶级元素,即直接在文件中,只需导入该元素即可从其他任何地方访问。
例如,您可以在包com.x 中有一个Common.kt 文件,其中包含fpath = Paths.get(...)。在另一个文件中,您执行 import com.x.fpath 并在整个文件中使用它。
第三:您也可以在companion object 的A 中定义变量,如果它属于那里:
class A {
companion object {
val fpath = ...
}
}
class B{
fun xy() = print(“accessing property of A: ${A.fpath}”)
}
【讨论】: