定义:
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);
网友评论