facebook twitter hatena line email

Android/kotlin/singleton

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

singletonサンプル

companion objectを使うパターン

MainActivity.kt

HogeSingleton.setName("hogehoge")
Log.i("test", "HogeSingleton.getName()=" + HogeSingleton.getName()) // hogehoge

HogeSingleton.kt

class HogeSingleton {
    companion object {
        private var name = ""
        fun setName(name: String) {
            this.name = name
        }
        fun getName(): String {
            return this.name
        }
    }
}

Classを使うパターン

仮にclass名をInstanceとした。

MainActivity.kt

HogeSingleton.Instance.setName("hogehoge")
Log.i("test", "HogeSingleton.getName()=" + HogeSingleton.Instance.getName()) // hogehoge

HogeSingleton.kt

class HogeSingleton {
    object Instance {
        private var name = ""
        fun setName(name: String) {
            this.name = name
        }
        fun getName(): String {
            return this.name
        }
    }
}