web-dev-qa-db-ja.com

Kotlinの静的初期化ブロック

Kotlinの 静的初期化ブロック と同等のものは何ですか?

Kotlinは静的なものを持たないように設計されていることを理解しています。私は同等のセマンティクスを持つものを探しています-コードはクラスが最初にロードされたときに一度実行されます。

私の具体的なユースケースは、Android AppCompatライブラリと 指示 からの静的な初期化ブロックにApplicationクラス。

63

ある観点から見ると、Kotlinの companion objects は、Javaクラスの静的部分です。特に、クラスの最初の使用前に初期化されます。これにより、initブロックをJava静的初期化子の代わりに使用できます。

class C {
    companion object {
        init {
            //here goes static initializer code
        }
    }
}
101
hotkey
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

1
abhilasha Yadav