HelloCW
HelloCW

Reputation: 2365

Which way is better between companion object and fun without a class in Kotlin?

I know there isn't a static function in Kotlin, so I write two code in OkHttpService.kt and my.kt

I don't know which is better, could you tell me? Thanks!

OkHttpService.kt

class OkHttpService {

    companion object {
        fun httpGet(username: String, callback: Callback) {
            val fetchRepoUrl = "https://api.github.com/users/$username/repos?page=1&per_page=20"

            val client = OkHttpClient()
            val request = Request.Builder()
                    .url(fetchRepoUrl)
                    .build()

            client.newCall(request).enqueue(callback)
        }
    }
}

my.kt

fun OkHttpService_httpGet(username: String, callback: Callback) {
            val fetchRepoUrl = "https://api.github.com/users/$username/repos?page=1&per_page=20"

            val client = OkHttpClient()
            val request = Request.Builder()
                    .url(fetchRepoUrl)
                    .build()

            client.newCall(request).enqueue(callback)

Upvotes: 2

Views: 385

Answers (1)

voddan
voddan

Reputation: 33839

For scoping use a regular object, not companion:

object OkHttpService{
    fun httpGet(username: String, callback: Callback) {
        val fetchRepoUrl = "https://api.github.com/users/$username/repos?page=1&per_page=20"

        val client = OkHttpClient()
        val request = Request.Builder()
                .url(fetchRepoUrl)
                .build()

        client.newCall(request).enqueue(callback)
    }
}

Upvotes: 4

Related Questions