2013-12-14 78 views
0
createFolder方法

運行時,下面的代碼異常在Groovy中

groovy.lang.MissingMethodException: No signature of method: Script17.createFolder() is applicable for argument types: (java.lang.String, java.lang.String) values: [C:/, testFolder] error at line: 38 

代碼

def directory = 'C:/' 
def folderName = 'testFolder' 
def c 

def txtFileInfo = [] 

String a = "Today is a new day" 
String b = "Tomorrow is the future" 
String d = "Yesterday is the past" 

txtFileInfo << a 
txtFileInfo << b 
txtFileInfo << d 

c = createFolder(directory, folderName) //this simply creates a folder to drop the txt file in 

writeToFile(c, "garbage", ".txt", txtFileInfo) 




public void writeToFile(def directory, def fileName, def extension, def infoList) { 
    File file = new File("$directory/$fileName$extension") 

    infoList.each { 
     file << ("${it}\r\n") 
    } 
} 

是否有與方法參數的任何問題,我收到以下錯誤,不應該是這兩個字符串?

感謝

+0

「createFolder」方法在哪裏聲明?由於找不到具有該簽名的方法,因此您需要聲明它或從庫中導入它。 – silverbeak

+0

@silverbeak謝謝,我得到了你,再一次澄清。如果我想將writeToFile函數放在其他地方,以便在其他腳本中使用該方法,我應該這樣做。 – SMPH

回答

2

你可以修改你的代碼看起來是這樣的:

def directory = './' 
def folderName = 'testFolder' 
def c 

def txtFileInfo = [] 

txtFileInfo << "Today is a new day" 
txtFileInfo << "Tomorrow is the future" 
txtFileInfo << "Yesterday is the past" 

c = createFolder(directory, folderName) 

writeToFile(c, "garbage", ".txt", txtFileInfo) 


def createFolder(directory, folderName) { 
    new File(directory + folderName).mkdir() 
    directory + folderName 
} 

public void writeToFile(String directory, String fileName, String extension, List<String> infoList) { 
    File file = new File("$directory/$fileName$extension") 

    infoList.each { 
     file << (it + System.getProperty("line.separator")) 
    } 
} 

如果你想重新使用你的代碼,把它放在一個級別且導入類到您的文件,當你運行你的程序時,確保該類在你的類路徑中。在Groovy documentation上記錄了這樣做的方法。

和平

+0

謝謝silverbeak,真的很感激 – SMPH