GStringImpl无法强制转换为java.lang.String

use*_*320 13 grails

我使用Grails和Spring Security得到了以下错误.还有其他人有这样的问题吗?如果是这样,你的修复是什么?

Error |
Exception in thread "Thread-15" 
Error |
java.lang.ClassCastException: org.codehaus.groovy.runtime.GStringImpl cannot be cast to java.lang.String
Error |
    at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:114)
Run Code Online (Sandbox Code Playgroud)

java.lang.IllegalArgumentException: Failed to evaluate expression 'User_name'
Run Code Online (Sandbox Code Playgroud)

Cyb*_*eks 38

您是否生成了所有类(用户,角色...).你的命令怎么样?喜欢这个grails s2-quickstart com.testapp User Role?检查您的配置并在本教程中进行尝试. Spring Security Plugin教程

实际上这个错误意味着在groovy中你使用类似"$ {my_var}"的GString,而某些类需要String.它不能自动投射.如果您有这样的代码,您必须将它转换为String,如下所示:"${my_var}".toString().

  • 特别是,如果您尝试将 GString 分配给静态类型为 String 的内容(或为 String 类型方法参数传递 GString),那么 Groovy 将为您执行转换,但如果您分配给类型为 String 的内容对象然后你必须自己转换它。 (2认同)
  • 这个答案对我有用,但就我而言,它的使用是在“build.gradle”文件中。 (2认同)