【发布时间】:2013-05-13 04:52:52
【问题描述】:
在使用GStringImpl 创建新文件对象时,我在这里遇到了一个奇怪的错误。如果我使用GStringImpl 创建一个新文件(然后列出该路径中的文件),我会得到一个空数组,并且没有错误,但是如果我只是一个普通字符串,我会得到一个文件列表......虽然那个在某种程度上是有道理的,我认为某处会出现错误。
例子:
def thisIsAListOfFiles = new File("/absolute/fs/mount/point").listFiles()
def gString = "${StaticClass.propertyStringThatIsAnAbsoluteFilePath}"
def notAListOfFiles = new File(gString).listFiles()
对这里发生的事情有什么想法吗?这是预期的行为吗?
更多信息:
- Groovy 版本:2.1.3
- Grails 版本:2.2.2(当然这是在 grails 应用程序中)
- Java 版本:OpenJDK 运行时环境 (IcedTea 2.3.9)
我从一个包含一堆这样的属性的属性文件开始
com.mycompany.property = "/absolute/directory/path"
因为我不能轻易地将grailsApplication 注入到非 grails 类中(例如 /src/groovy 中的任何东西),所以我将 grailsApplication 注入到引导程序中,并使用 groovy config slurper 从类路径中读取属性文件,然后将其设置为静态groovy 类 Config.groovy 中的字符串值。然后,该 groovy 类具有我在应用程序中任何位置所需的所有属性的静态变量。
注意:这不是读取属性文件或任何类似内容的问题。我在new File(var).listFiles() 发生之前记录了Config.filePathProperty,并且该值设置正确。
【问题讨论】: