groovy.lang.GroovyRuntimeException:找不到与以下内容匹配的构造函数:java.io.File(File)

groovy.lang.GroovyRuntimeException:找不到与以下内容匹配的构造函数:java.io.File(File),file,groovy,constructor,File,Groovy,Constructor,我已经在Groovy和Grails上工作了几个星期了 我刚刚遇到一个问题,任何文件创建命令如下: void validate(FileToValidate) { try { DefaultImmutableModuleIdentifierFactory moduleIdentifierFactory = new DefaultImmutableModuleIdentifierFactory() def moduleDescripto

我已经在Groovy和Grails上工作了几个星期了

我刚刚遇到一个问题,任何文件创建命令如下:

void validate(FileToValidate) {
        try {
            DefaultImmutableModuleIdentifierFactory moduleIdentifierFactory = new DefaultImmutableModuleIdentifierFactory()
            def moduleDescriptorConverter = new IvyModuleDescriptorConverter(moduleIdentifierFactory)
            def metadataFactory = new IvyMutableModuleMetadataFactory(moduleIdentifierFactory,null)
            def repository = new DefaultExternalResourceRepository("repo", null, null, null, null, null,null)
            def files =  new java.io.File(FileToValidate)
            URI uri = files.toURI()
            def name = new ExternalResourceName(uri)
            def parser = new IvyXmlModuleDescriptorParser(moduleDescriptorConverter, moduleIdentifierFactory,repository.resource(name ,true), metadataFactory)
            DescriptorParseContext ivySettings = null //new DisconnectedDescriptorParseContext();
            parser.parseMetaData(ivySettings, FileToValidate, true);

        } catch (MetaDataParseException e) {
            throw new GradleException("Invalid ivy descriptor file $FileToValidate", e);
        }
    }


我得到以下错误:

Caused by: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.io.File(File)

您正在将
文件
传递给
无效验证(FileToValidate){

然后尝试在这里创建一个新文件

            def files =  new java.io.File(FileToValidate)
您不需要这样做……只需使用
FileToValidate

作为旁注,建议变量和参数使用小写字母,以避免混淆,所以

void validate(fileToValidate) {

在我的情况下,我只有一个路径,所以必须自己创建文件, 它有助于:

new java.io.File(FileToValidate.toString())
像弹簧一样

返回此路径的字符串表示形式