當我用GStringImpl
創建一個新的文件對象時,我遇到了一些奇怪的錯誤。如果我用GStringImpl
創建一個新的文件(然後列出那個路徑中的文件),我得到一個空數組,並且沒有錯誤,但是如果我只是一個普通的字符串,我會得到一個文件列表...雖然這是有道理的在某種程度上,我會認爲某處會出現錯誤。Groovy中的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的運行時環境(2.3的IcedTea 0.9)
我開始了一個屬性,像這樣
com.mycompany.property = "/absolute/directory/path"
一堆屬性文件
因爲我不能輕鬆地將grailsApplication
到非Grails的類(在/src/groovy
比如什麼)我注入grailsApplication
爲引導,並使用常規配置slurper讀屬性從classpath文件和設置,則靜態字符串值在Groovy類Config.groovy中。那個groovy類然後擁有我在應用程序中任何地方需要的所有屬性的靜態變量。
注意:這不是讀取屬性文件或任何沿着這些行的問題。在new File(var).listFiles()
發生前,我記錄Config.filePathProperty
,並且該值已正確設置。
對不起,長答覆。你是對的,我太累了,也沒有經過正確的思考。我正在設置路徑「正確」,因爲它是正確的絕對路徑,但我使用java屬性的方式是錯誤的。它是'key = value'不'key =「引用的值是錯誤的......」'。所以謝謝。 log.info和println顯示了這一點,但我完全錯過了,因爲我傾向於在日誌語句中引用某些var的某些時間... –