gpt4 book ai didi

groovy - Groovy 中的对象数组声明

转载 作者:行者123 更新时间:2023-12-02 09:12:11 27 4
gpt4 key购买 nike

为什么我不能在 Groovy 中声明一个 People 数组,如图所示。可能是我对类缺乏更深入的理解

class People {
Integer id
}

class Job {
def func() {
People[] p = new People[10]
}
}

我得到一个错误 People[] cannot be applied to app.People[]

最佳答案

您显示的代码示例不会重现您在上述问题中提到的错误。它实际上已损坏且无法编译 - 方法 func() 缺少其主体。如果您将代码更正为例如

class People {
Integer id
}

class Job {
def func() {
People[] p = new People[10]
assert p.size() == 10
println p
}
}

new Job().func()​

您会看到它产生了预期的结果 - 在 Groovy 网络控制台中检查它 here .运行它时,您将在控制台看到以下输出:

[null, null, null, null, null, null, null, null, null, null]

Groovy和Java的区别

在数组初始化方面,Groovy 和 Java 之间存在一个显着差异。在 Java 中,您可以像这样初始化一个 People[] 数组:

People[] p = new People[] { new People(), new People(), /* ... */ new People() };

它在 Groovy 中不起作用,因为 Groovy 为闭包保留了 {}。在 Groovy 中,您可以将这样的数组初始化为:

People[] p = [new People(), new People(), new People()] as People[]

关于groovy - Groovy 中的对象数组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50884974/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com