gpt4 book ai didi

kotlin - 如果我希望像Kotlin中的静态函数一样使用语法,哪种方法更好?

转载 作者:行者123 更新时间:2023-12-02 13:06:39 25 4
gpt4 key购买 nike

我知道Kotlin中没有静态函数,所以我在myClass1.kt和myClass2.kt中编写了两个代码

我不知道哪个更好,你能告诉我吗?谢谢!

主要

class HomeActivity : DemoActivity() {    
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

Display1(this)
Utility.Display2(this)
}
}

myClass1.kt
import android.content.Context
import android.widget.Toast

fun Display1(mContext: Context){
Toast.makeText(mContext, "Hello, World 1", Toast.LENGTH_LONG).show();
}

myClass2.kt
import android.content.Context
import android.widget.Toast

object Utility {
fun Display2(mContext: Context) {
Toast.makeText(mContext, "Hello, World 2", Toast.LENGTH_LONG).show();
}
}

最佳答案

让我们反编译kotlin字节码并查看java代码。

myClass1.kt

public final class MyClass1Kt {
public static final void Display1(@NotNull Context mContext) {
Intrinsics.checkParameterIsNotNull(mContext, "mContext");
Toast.makeText(mContext, (CharSequence)"Hello, World 1", 1).show();
}

myClass2.kt
public final class Utility {
public static final Utility INSTANCE;

public final void Display2(@NotNull Context mContext) {
Intrinsics.checkParameterIsNotNull(mContext, "mContext");
Toast.makeText(mContext, (CharSequence)"Hello, World 2", 1).show();
}

private Utility() {
INSTANCE = (Utility)this;
}

static {
new Utility();
}
}

第二种方法显然不是您想要的。不需要实例创建。

关于kotlin - 如果我希望像Kotlin中的静态函数一样使用语法,哪种方法更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46273453/

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