美文网首页
6.伴生对象与静态成员

6.伴生对象与静态成员

作者: 学吉他的袁先生 | 来源:发表于2020-07-28 12:08 被阅读0次

定义:
1.关键字companion object{}
2.每一个类可以对应一个伴生对象
3.伴生对象的成员全局独一份
4.伴生对象的成员类似java的静态成员

class Latitude private constructor(val value: Double){
    companion object{
        val TAG: String = "Latitude"
        fun ofDouble(double: Double): Latitude{
            return Latitude(double)
        }
    }
}

fun main(args: Array<String>) {
    val latitude = Latitude.ofDouble(3.0)
    println(Latitude.TAG)
}

java调用

Latitude latitude = Latitude.Companion.ofDouble(3.0);

如果想要跟kotlin调用方式一致,需要借助@JvmField,@JvmStatic

class Latitude private constructor(val value: Double){
    companion object{
        @JvmField
        val TAG: String = "Latitude"
        @JvmStatic
        fun ofDouble(double: Double): Latitude{
            return Latitude(double)
        }
    }
}

java调用

Latitude latitude = Latitude.ofDouble(3.0);

相关文章

网友评论

      本文标题:6.伴生对象与静态成员

      本文链接:https://www.haomeiwen.com/subject/owkfrktx.html