在 kotlin 中添加 2 个或更多构造函数

Pra*_*mar 5 java android kotlin

如何添加 2 个或更多构造函数?我知道在 kotlin 中使用数据类,但我不知道这个关键字在 kotlin 中到底是什么,为什么我们必须在里面放任何东西?

public class Model {
    public String mId, mTitle, mDesc;

    public Model() {

    }

    public Model(String mId, String mTitle, String mDesc) {
        this.mId = mId;
        this.mTitle = mTitle;
        this.mDesc = mDesc;
    }

    public String getmId() {
        return mId;
    }

    public void setmId(String mId) {
        this.mId = mId;
    }

    public String getmTitle() {
        return mTitle;
    }

    public void setmTitle(String mTitle) {
        this.mTitle = mTitle;
    }

    public String getmDesc() {
        return mDesc;
    }

    public void setmDesc(String mDesc) {
        this.mDesc = mDesc;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道 kotlin 但不是那么多。

我是如何改变的

data class model_for_single_row (val mId:String,val mTitle:String,val mDesc:String){
    constructor():this()
} 
Run Code Online (Sandbox Code Playgroud)

在里面放一些东西会让我出错。为什么我们在这里使用它,为什么我们应该放,我们应该放什么?

Ani*_*ahu 4

java 中 String 的默认值为null,而 Kotlin 中并非如此。

您可以使字段可为空并将其默认值附加到 null:

data class model_for_single_row(
    val mId: String? = null,
    val mTitle: String? = null,
    val mDesc: String? = null
)
Run Code Online (Sandbox Code Playgroud)

你可以这样称呼它:

model_for_single_row()
model_for_single_row("id")
model_for_single_row("id", "title")
model_for_single_row("id", "title", "desc")
model_for_single_row(mTitle = "title")
Run Code Online (Sandbox Code Playgroud)

此处未提供的参数将为空。