将类对象的实例添加到类构造函数中的类对象列表中

时间:2018-02-23 03:50:58

标签: class constructor kotlin

很抱歉这个令人困惑的标题。我试图在将所有输入测试传递到PersonList之后添加我的类的实例。到目前为止,我尝试在构造函数中创建我的类的对象但是没有用。请告诉我。

open class Person  {
    var _name: String
    var _Id: String
    var disabilities = emptySet<Disability>()

    companion object {
        val PersonList: MutableList<Person> = mutableListOf()
        val PersonId: MutableList<String> = mutableListOf()
    }

    constructor(n: String, i: String){
        _name = n
        _Id = i

        if(_name.isBlank()){
            throw Error("blank string")
        }
        else if(_name.get(0).equals(' ')){
            throw Error("leading zero")
        }
        else if(_Id.toIntOrNull()== null){
            throw Error("Id is not numeric")
        }
        else if(_Id.length != 9) {
            throw Error("Id is not length 9")
        }
        else if(_Id in PersonId){
            throw Error("Person Id is a repeat")
        }
        else {
            PersonList.add()
            PersonId.add(_Id)
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您正在向PersonList类型MutableList<Person>添加任何内容。

我假设您要将当前Person实例添加到列表中。

然后执行PersonList.add(this)

即,

    ...
    else {
        PersonList.add(this)
        PersonId.add(_Id)
    }
    ...