Я чрезвычайно новичок в Groovy и мне интересно, почему я получаю нулевое значение после моего кода.У меня есть App.groovy и Person.groovy, которые оба очень просты, и я думаю, что моя ошибка в автоматическом возврате для закрытия, но я не уверен,
package firstGradleGroovyBuild
class App {
static void main(def args) {
def myList = [1,2,"James","4"]
myList.each {
println("$it is of ${it.class}")
}
println()
Person person = new Person()
person.age = 13
person.address = "Home"
println(person)
Person p2 = new Person()
p2.firstName = "Joe"
p2.lastName = "Shmo"
p2.age = 23
p2.address = "Away"
println p2
Person p3 = new Person(firstName: "Smoky", lastName: "Robinson", age: 24, address: "Mountains")
println p3
}
}
Так вот мойПриложение, и я просто пытаюсь проверить несколько разных вещей.
Сначала я хотел убедиться, что, не задавая имя и фамилию, я получу ноль на их месте.
Во-вторых, я просто хотел проверить нормальную настройку свойства
В-третьих, я хотел протестировать автоматический конструктор по умолчанию для инициализации реквизита.
Я также пытался заменить p2 w / tap {} после просмотра документации (не сработало), но я думаю, что это связано с тем, что tap используется исключительно как предпочтение для сохранения при вводе префикса p2 поверхи снова при обновлении экземпляра.
Person p2 = new Person().tap {
firstName = "Jo"
lastName = "Mo"
age = 23
address = "Away"
}
println p2
Вот мой класс Person
package firstGradleGroovyBuild
class Person {
String firstName
String lastName
int age
def address
String toString(){
println("${firstName} ${lastName} of age ${age} lives at ${address}")
}
}
Мой вывод почти , как и ожидалось: все в println верно.
1 is of class java.lang.Integer
2 is of class java.lang.Integer
James is of class java.lang.String
4 is of class java.lang.String
null null of age 13 lives at Home
null
Joe Shmo of age 23 lives at Away
null
Smoky Robinson of age 24 lives at Mountains
null
Process finished with exit code 0
Но я получаю «ноль» после каждой печати.Может кто-нибудь объяснить, что мне не хватает?