Kotlin入門者による適当なアウトプット
シングルトンを作るケース
class宣言の直後、クラスのヘッダーにprivate constructor()
と書いて、初期化ブロック(init)内に色々書く。
class ProjectRepository private constructor() {
private var githubService: GithubApi
init {
val retrofit = Retrofit.Builder()
.baseUrl(GithubApi.GITHUB_API_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
githubService = retrofit.create(GithubApi::class.java)
}
companion object {
private var projectRepository: ProjectRepository? = null
fun getInstance(): ProjectRepository {
if (projectRepository == null) {
projectRepository = ProjectRepository()
}
return projectRepository!!
}
}
}
参考:
https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/classes.html