2

圣杯 2.2

所以这应该很容易,但是我不断收到相同的错误消息:

Class java.lang.IllegalArgumentException
Message No enum constant myPackageName.RequestType.Banner

这是我的课:

public enum RequestType {
    BANNER("Banner"), OTHER("Other")

    final String value

    RequestType(String value) { this.value = value }

    String toString() { value }
}

这把我逼疯了!!

编辑:堆栈跟踪

No enum constant myPackageName.RequestType.Banner. Stacktrace follows:
java.lang.IllegalArgumentException: No enum constant myPackageName.RequestType.Banner
    at java.lang.Enum.valueOf(Enum.java:236)
    at org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:108)
    at ysuprojects.ProjectService.viewableProjects(ProjectService.groovy:115)
    at ysuprojects.ProjectService.getIndexModel(ProjectService.groovy:422)
    at ysuprojects.ProjectController.index(ProjectController.groovy:25)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

这是它在课堂上的使用方式

class Project {
    ...
    RequestType requestType
    ...
}
4

1 回答 1

3

好的-这就是发生的事情。

我从使用 a 切换String到使用Enum. 现有数据库"Banner"在该字段中,这导致了此错误。我将字段更改为,"BANNER"并且不再收到此错误。

Grails 试图做Enum.valueOf(RequestType, "Banner")

于 2013-01-17T18:48:43.367 回答