gpt4 book ai didi

kotlin - Kotlin 中的 Util 类(最佳方法)?

转载 作者:行者123 更新时间:2023-12-05 00:46:55 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Utils class in Kotlin

(3 个回答)


去年关闭。




我在玩Kotlin ,并以不同的方式创建 Util 类。我正在接近 效果最好通过 调用电话Kotlin 或 Java .

现在我创建了多种类型使用 .现在我很困惑最好用最重要的为什么 ?我正在寻找 最好的方法考虑 堆、内存、性能 .

我的问题对你们来说可能看起来很愚蠢,但我在迷宫中,自己无法找到解决方案。

这里是我的游乐场。

我创建了 5 个 Kotlin 文件 .我在其中放了富()方法。并试图通过 Kotlin 和 Java 调用。

Calling class Bar.kt


class Bar {
fun bazz() {
UtilClass.instance.foo()
UtilClassObject.UtilClassObject.foo()
UtilCompanionObject.foo()
UtilFileObject.foo()
foo() // from UtilFile
}
}

Calling class Qux.java


public class Qux {
public void bazz() {
UtilClass.Companion.getInstance().foo();
UtilClassObject.UtilClassObject.INSTANCE.foo();
UtilFileKt.foo();
UtilFileObject.INSTANCE.foo();
UtilCompanionObject.Companion.foo();
}
}

这是 maze这让我很困惑选择最好的。

UtilClass.kt
class UtilClass {
fun foo() { ... }

companion object {
val instance = UtilClass()
}
}

UtilClassObject.kt
class UtilClassObject {
object UtilClassObject {
fun foo() { ... }
}
}

UtilCompanionObject.kt
class UtilCompanionObject {
companion object {
fun foo() { ... }
}
}

实用程序文件.kt
fun foo(){ ... }

UtilFileObject.kt
object UtilFileObject {
fun foo() { ... }
}

可能需要回答我的问题并很好地解释它。因此,我非常感谢您提前做出的努力。

最佳答案

Kotlin 引用页面上提供了 Kotlin 和 Java 之间互操作的所有选项:https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html
您可以选择从 Java 调用类 MyUtil 上的某些内容并在没有实例的情况下调用它,例如 MyUtil.foo()那么您只需执行以下两个选项之一:

// smallest byte code, 
// static invocation of foo() from Kotlin side,
// also static call from Java to foo()
object MyUtil {
@JvmStatic fun foo() { ... }
}
或者
// creates two classes,
// static lookup of companion followed by virtual call on that instance to foo() from Kotlin,
// Java is a static call to foo()
class MyUtil {
companion object {
@JvmStatic fun foo() { ... }
}
}
你会在 Kotlin MyUtil.foo() 中这样称呼它.这是专门制作 Kotlin method static的模型.
这两个示例在 Java 中看起来相同,因为它们只是对静态方法的直接静态调用。在 Kotlin 中,第一个示例也是静态调用,第二个示例首先查找同伴的实例,然后对该方法进行虚拟调用。第二个例子创建了两个类,另一个只创建了一个类。
您提供的其他选项效率不高,语法也更丑陋。基于最小的字节码、最少的类和最快的性能选择第一个只有 1 个类和所有静态调用的示例。

关于kotlin - Kotlin 中的 Util 类(最佳方法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53113401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com