Kotlinの 静的初期化ブロック と同等のものは何ですか?
Kotlinは静的なものを持たないように設計されていることを理解しています。私は同等のセマンティクスを持つものを探しています-コードはクラスが最初にロードされたときに一度実行されます。
私の具体的なユースケースは、Android AppCompatライブラリと 指示 からの静的な初期化ブロックにApplication
クラス。
ある観点から見ると、Kotlinの companion object
s は、Javaクラスの静的部分です。特に、クラスの最初の使用前に初期化されます。これにより、init
ブロックをJava静的初期化子の代わりに使用できます。
class C {
companion object {
init {
//here goes static initializer code
}
}
}
companion object {
// Example for a static variable
internal var REQUEST_CODE: Int? = 500
// Example for a static method
fun callToCheck(value: String): String {
// your code
}
}
クラス内のオブジェクト宣言は、コンパニオンキーワードでマークできます。この下では、Java static method and variable.LIke classname.methodname or classname.variablename