美文网首页
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