gpt4 book ai didi

spring - Grails getSomething(int i) 方法无法编译

转载 作者:行者123 更新时间:2023-12-02 13:46:24 24 4
gpt4 key购买 nike

有人能告诉我为什么这个 Grails 域类不能编译(在运行时)吗?

class Person {
String name

String getSomething(int i) {
}
}

使用 grails run-app 运行时出现此错误:
2008-12-27 15:26:33.955::WARN:  Failed startup of context org.mortbay.jetty.webapp.WebAppContext@187e184{/asrs2,C:\Steve\asrs2/web-app}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
at java.security.AccessController.doPrivileged(Native Method)
at RunApp_groovy$_run_closure2_closure7.doCall(RunApp_groovy:67)
at RunApp_groovy$_run_closure2_closure7.doCall(RunApp_groovy)
at Init_groovy$_run_closure6.doCall(Init_groovy:131)
at RunApp_groovy$_run_closure2.doCall(RunApp_groovy:66)
at RunApp_groovy$_run_closure2.doCall(RunApp_groovy)
at RunApp_groovy$_run_closure1.doCall(RunApp_groovy:57)
at RunApp_groovy$_run_closure1.doCall(RunApp_groovy)
at gant.Gant.dispatch(Gant.groovy:271)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:436)
at gant.Gant.processArgs(Gant.groovy:372)
Caused by: java.lang.NullPointerException
at java.lang.Class.isAssignableFrom(Native Method)
... 13 more

如果我改变方法 getSomethingdoSomething那么它的工作原理。是 getSomething(int i)以某种方式被视为 bean 方法?

关注 : 这是一个 Grails bug这将在 1.2 中修复。

最佳答案

那么,你有两个问题:

  • Grails 中的域类尝试确保每个属性在启动期间都有一个 getter 和 setter。它通过查找所有 getter 并确保存在适当的 setter 来实现此目的。所以,如果你有一个 getSomething(),你必须有一个 setSomething(def something),即使类中没有属性“某物” .实际上,通过创建 getSomething() 函数,您已经暗示存在这样一个属性,并且您还必须创建一个 setSomething()。
  • setter/getter 不接受参数 .你的可以。现在我意识到您在编写它时并没有认为这是一个“getter”,但是您对它的命名使它成为一个。

  • 最好的选择?不要使用“get”或“set”或“is”前缀,除非你真的要创建一个可以获取和设置的完整属性。我也会避免在域类中“查找”,因为它有自己的一组生成方法。

    关于spring - Grails getSomething(int i) 方法无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/395586/

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