Создать список объектов из списка String в Groovy - PullRequest
0 голосов
/ 03 мая 2018

У меня есть список строк следующим образом.

List l = ["1","2","3"]

И у меня есть класс, подобный следующему.

class person {
    String name
}

Я хочу создать список объектов person из List l.

Я пытался использовать сбор списка, но я не могу этого сделать.

Вот мой код.

class testJsonSlurper {
    static void main(String[] args) {
        List l = ["1","2","3"]
        def l2 = l.collect { new person(it) }
        println(l2)
    }
}

Но я получаю следующую ошибку.

Exception in thread "main" groovy.lang.GroovyRuntimeException: Could not find matching constructor for: testJsonSlurper$person(java.lang.String)

1 Ответ

0 голосов
/ 03 мая 2018

В вашем классе testJsonSlurper , вы должны изменить эту строку

def l2 = l.collect { new person(it) }

в

def l2 = l.collect { new person(name:it) }

Это то, что мы называем Конструктор именованных аргументов . Вы можете найти больше информации о Именованном конструкторе аргументов здесь .

Если вы не хотите вносить это изменение, вам нужно добавить конструктор в класс person самостоятельно. Класс person должен выглядеть следующим образом после добавления конструктора.

​class person {    
    String name

    person(name){
        this.name = name
    }
}
...