我知道Kotlin沒有靜態函數,所以我在myClass1.kt和myClass2.kt中寫了兩個代碼。我不知道哪個更好,你能告訴我嗎?我不知道哪個更好,你能告訴我嗎?謝謝!如果我希望在Kotlin中使用類似靜態函數的語法,哪種方法更好?
主要
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();
}
}
你能否解釋爲什麼第二種方式不好? – pokemzok
@pokemzok首先,第二種方法是一種對象方法,甚至不是靜態的(Kotlin需要伴侶對象)。即使它是伴侶對象,這不是Kotlin的做法,更像Java。此外,它可以用較少冗長的'context?.display1()'工作在可空對象上。此外,你正在創建一個沒有目的的工具類。將職能放在課堂外可以達到同樣的目的。 – Joshua