编译 groovy 类时出现奇怪的堆栈跟踪

发布于 2024-07-27 04:15:22 字数 2634 浏览 4 评论 0原文

我正在用 Groovy 编写一个小型测试应用程序。 我有以下代码。

class Address {

static constraints = {
    street(blank:false, maxSize:100)
    residencenumber(min:1, max:65000)
    addition()
    zip()
    city(blank:false, maxSize:100)
    county()
    country(blank:false, maxSize:50)
}

String street
String zip
int residencenumber
String addition
String city
String county
String country

String toString() {
    return street + " " + residencenumber + " " + zip + " " + city + " " + country
}

收到了这条相当神秘的消息。

nojevive@follett:~/dev/code/mysmallapp$ grails 生成所有地址 欢迎使用 Grails 1.1.1 - http://grails.org/ 根据 Apache 标准许可证 2.0 获得许可 Grails 主目录设置为:/home/nojevive/dev/grails

基本目录:/home/nojevive/dev/code/mysmallapp 运行脚本 /home/nojevive/dev/grails/scripts/GenerateAll.groovy 发展环境 <代码> groovy.lang.MissingMethodException:没有方法签名:java.lang.Integer.call() 适用于参数类型:() 值:[] 在项目 $__clinit__closure1.doCall(Project.groovy:11) 在项目 $__clinit__closure1.doCall(Project.groovy) 在 Project.getProperty(Project.groovy) 在 _PluginDependency_groovy$_run_closure6_closure53.doCall(_PluginDependency_groovy:467) 在 _PluginDependency_groovy$_run_closure6_closure53.doCall(_PluginDependency_groovy) 在 _GrailsS​​ettings_groovy$_run_closure10.doCall(_GrailsS​​ettings_groovy:274) 在 _GrailsS​​ettings_groovy$_run_closure10.call(_GrailsS​​ettings_groovy) 在 _PluginDependency_groovy$_run_closure6.doCall(_PluginDependency_groovy:447) 在 _GrailsBootstrap_groovy$_run_closure1.doCall(_GrailsBootstrap_groovy:74) 在 _GrailsGenerate_groovy$_run_closure1.doCall(_GrailsGenerate_groovy:37) 在GenerateAll$_run_closure1.doCall(GenerateAll.groovy:42) 在 gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324) 在 gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334) 在 gant.Gant$_dispatch_closure6.doCall(Gant.groovy) 在 gant.Gant.withBuildListeners(Gant.groovy:344) 在 gant.Gant.this$2$withBuildListeners(Gant.groovy) 在 gant.Gant$this$2$withBuildListeners.callCurrent(来源未知) 在 gant.Gant.dispatch(Gant.groovy:334) 在 gant.Gant.this$2$dispatch(Gant.groovy) 在 gant.Gant.invokeMethod(Gant.groovy) 在 gant.Gant.processTargets(Gant.groovy:495) 在 gant.Gant.processTargets(Gant.groovy:480) 加载插件管理器时出错:没有方法签名:java.lang.Integer.call() 适用于参数类型:() 值:[]

首先我想也许我的号码超出了范围(我有 1000000)。 然后我想也许这个号码是一个内置名称,所以我将其重命名为“residencenumber”。 但没有运气。 我在这里缺少什么? 我现在删除了所有限制,但仍然是相同的消息。 所以我猜这与领域无关。 一定有什么东西坏掉了吗?

I'm coding a small test app in Groovy. I have the following code.

class Address {

static constraints = {
    street(blank:false, maxSize:100)
    residencenumber(min:1, max:65000)
    addition()
    zip()
    city(blank:false, maxSize:100)
    county()
    country(blank:false, maxSize:50)
}

String street
String zip
int residencenumber
String addition
String city
String county
String country

String toString() {
    return street + " " + residencenumber + " " + zip + " " + city + " " + country
}

}

I'm getting this rather cryptic message.

nojevive@follett:~/dev/code/mysmallapp$ grails generate-all Address
Welcome to Grails 1.1.1 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /home/nojevive/dev/grails

Base Directory: /home/nojevive/dev/code/mysmallapp
Running script /home/nojevive/dev/grails/scripts/GenerateAll.groovy
Environment set to development

groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: []
at Project$__clinit__closure1.doCall(Project.groovy:11)
at Project$__clinit__closure1.doCall(Project.groovy)
at Project.getProperty(Project.groovy)
at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy:467)
at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:274)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _PluginDependencies_groovy$_run_closure6.doCall(_PluginDependencies_groovy:447)
at _GrailsBootstrap_groovy$_run_closure1.doCall(_GrailsBootstrap_groovy:74)
at _GrailsGenerate_groovy$_run_closure1.doCall(_GrailsGenerate_groovy:37)
at GenerateAll$_run_closure1.doCall(GenerateAll.groovy:42)
at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:344)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:334)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:495)
at gant.Gant.processTargets(Gant.groovy:480)
Error loading plugin manager: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: []

First I thought maybe my number was out of range (I had 1000000). Then I thought maybe the number was a built-in name so I renamed to residencenumber. But no luck. What am I missing here?
I now removed all constraints, but still same message. So it has nothing to do with the fields I guess. Something must be broken?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怎会甘心 2024-08-03 04:15:22

我知道你已经解决了这个问题,但是执行 toString 的更好方法是:

String toString() {
  "$street $residencenumber $zip $city $country"
}

I know you have this solved, but a nicer way of doing the toString is:

String toString() {
  "$street $residencenumber $zip $city $country"
}
揪着可爱 2024-08-03 04:15:22

我可能是错的,但我认为你正在将 int 添加到 String 中。 我
尝试:

street + " " + residencenumber.toString() +...

I might be wrong but I think you're adding int to String. I
Try:

street + " " + residencenumber.toString() +...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文