kotlin - 在Kotlin中访问变量

标签 kotlin

如何在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}”)
}

关于kotlin - 在Kotlin中访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48894935/

相关文章:

android - 如何使用secp256r1类型的椭圆曲线 key 对在Android中加密和解密数据?

kotlin - 如何将可变参数传递给 Kotlin 中的可变参数函数或构造函数?

android - 错误 : @Component. Builder 缺少 Dagger 2 中所需模块或组件的 setter ,而不是 setter 方法

ios - 无法将 kotlin 接口(interface)的快速实现传递给 kotlin native

android - 计时 fragment 转换 - Android

android - 如何在 Kotlin 中编写一系列 promise ?

kotlin - 一旦分配了非空值,就会将 a 从 var 更改为 val 的属性?

android - SonarQube 代码覆盖率无法解释 Android 项目中的 Kotlin 文件

kotlin - 如何在KDoc中引用辅助构造函数?

android - 返回类型为 () -> MultipartBody.Part!而不是 MultipartBody.Part