我正在尝试应用于@GrailsCompileStatic
具有从请求中检索 MultipartFiles 的操作的控制器:
request.getFile('foo')
但是得到以下信息:
[静态类型检查] - 找不到匹配方法 javax.servlet.http.HttpServletRequest#getFile(java.lang.String)
是否有机会强制编译器验证请求AbstractMultipartHttpServletRequest
(具有 getFile(java.lang.String) 方法)而不是HttpServletRequest
?
UPD 此解决方案有效:
MultipartFile multipartFile = ((StandardMultipartHttpServletRequest) request).getFile('myFile')
但是在尝试测试它时有一些奇怪的行为:
org.codehaus.groovy.runtime.typehandling.GroovyCastException:无法将具有类“org.grails.plugins.testing.GrailsMockHttpServletRequest”的对象“org.grails.plugins.testing.GrailsMockHttpServletRequest@2bcf856f”转换为类“org.springframework.web”。 multipart.support.StandardMultipartHttpServletRequest'