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 中静态内部类的单例模式
class Single private constructor(){
companion object{
fun get(): Single{
return Holder.instance
}
}
private object Holder{
val instance = Single()
}
}