0
点赞
收藏
分享

微信扫一扫

kotlin companion object


companion object

  • ​​kotlin 没有 java 对应的 静态方法,但提供了 companion object​​
  • ​​还可以用于声明单例, 相当于 java 中静态内部类的单例模式​​

kotlin 没有 java 对应的 静态方法,但提供了 companion object

  • @Jvmstatic 注解
  • companion object

fun main(args: Array<String>) {

StringUtils.isEmpty("===")
}

class StringUtils{
companion object{
fun isEmpty(str: String): Boolean{
return "" == str
}
}
}

对应 java 编码:

public final class StringUtils {
public static final StringUtils.Companion Companion = new StringUtils.Companion((DefaultConstructorMarker)null);

public static final class Companion {
public final boolean isEmpty(@NotNull String str) {
return Intrinsics.areEqual("", str);
}

private Companion() {
}

// $FF: synthetic method
public Companion(DefaultConstructorMarker $constructor_marker) {
this();
}
}
}

public final class TestKt {
public static final void main(@NotNull String[] args) {
StringUtils.Companion.isEmpty("===");
}
}

还可以用于声明单例, 相当于 java 中静态内部类的单例模式

  • ​​Kotlin 中 的单例模式​​

class Single private constructor(){
companion object{
fun get(): Single{
return Holder.instance
}
}

private object Holder{
val instance = Single()
}
}


举报

相关推荐

0 条评论