伴生对象:必须声明在某个类中。
每个类可以对应一个半生对象,伴生对象的成员全局独一份,伴生对象类似java中的静态成员。
(1)应用一
例子:
java中我们可以通过StringUtil.isEmpty()的方式直接调用如下代码
public class StringUtil {
public static boolean isEmpty(String str){
return "".equals(str)
}
}
在kotlin中如果我们想直接调用某个方法可以添加@JvmStatic
注解也可以使用companion
伴生对象,如果想直接使用一个属性,使用@JvmField
class StringUtils{
companion object {
fun isEmpty(str:String):Boolean{
return "".equals(str)
}
}
}
kotlin中调用方式
class Tests {
fun main(arg: ArrayList<String>) {
StringUtils.isEmpty("")
}
}
java中调用kotlin的方式
StringUtils.Companion.isEmpty("");
(2)应用二
单例模式
class Single private constructor(){
companion object {
fun get():Single{
return Holder.instance
}
}
private object Holder{
val instance=Single()
}
}
转载:https://blog.csdn.net/danfengw/article/details/100621766
查看评论