Как упростить код Kotlin Getter and Settle? - PullRequest
0 голосов
/ 04 августа 2020

Я новичок в Kotlin и развиваюсь вместе с языком. Начиная с Java, я привык кодировать геттеры и сеттеры, создавая две функции. Например:

public String getName(){
    return name;
}
public void setName(name){
    this.name = name;
}

Однако можно ли упростить этот код в Kotlin? Мой код сейчас:


class ClassName{

    private var username: String? = null
    private var photoFileName: String? = null
    private var userId: String? = null
    private var requestSent: Boolean? = null

    fun ClassName(username: String?, photoFileName: String?, userId: String?, requestSent: Boolean?) {
        this.username = username
        this.photoFileName = photoFileName
        this.userId = userId
        this.requestSent = requestSent
    }

    fun getUsername(): String? {
        return username
    }
    fun setUsername(string: String){
        username = string
    }

    fun getPhotoFileName(): String? {
        return photoFileName
    }
    fun setPhotoFileName(string: String){
        photoFileName = string
    }

    fun getUserId(): String? {
        return userId
    }
    fun setUserId(string: String){
        userId = string
    }

    fun getRequestSent(): Boolean? {
        return requestSent
    }
    fun setRequestSent(bool: Boolean){
        requestSent = bool
    }
}

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Вот более расширенная версия вашего kotlin класса

data class YourClass(
    var username: String? = null,
    var photoFilename: String? = null,
    var userId: String? = null,
    var requestSent: Boolean? = null
)

Вам не нужно вручную создавать сеттер, функцию получения в Kotlin.

1 голос
/ 04 августа 2020

Ваш класс будет преобразован в этот, если вы используете класс данных в kotlin. Все сеттеры и геттеры будут заменены свойствами. И да, вы всегда можете вызывать их, как раньше, например, set and get.

data class ClassName(
    var username: String,
    var photoFileName: String,
    var userId: String,
    var requestSent: String
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...