2012-12-18 11 views
-2

我想用特定文件類型(.dbf)的特定目錄中的文件填充微調器。我不斷收到錯誤「的方法toLowerCase()是未定義的類型ArrayList的」如何解決這個問題呢我該如何解決Java錯誤:'方法toLowerCase()未定義類型ArrayList <String>「

public ArrayList<String> ReadDirectory(){ 
String path="./database"; 

File folder = new File(path); 
File[] ListOfFiles = folder.listFiles(); 

for (int i = 0; i < ListOfFiles.length; i++){ 
    if (ListOfFiles[i].isFile()){ 
     files.add(ListOfFiles[i].getName()); 
     if (files.endsWith(".dbf") || files.endsWith(".DBF")){ 
      } 
    } 
} 
return files; 
     } 


} 

的錯誤是在這條線下式給出:?

if (files.endsWith(".dbf") || files.endsWith(".DBF")){ 

文件被宣佈爲腳本的頂部用以下方式:

ArrayList<String> files = new ArrayList<String>(); 
+1

你在哪裏使用它?我目前的代碼中看不到它。 –

+0

錯誤所在的部分不包含在上面的源代碼中。你在哪裏聲明'文件'? – Fildor

+1

在文件名稱上調用它,而不是數組。你用'endsWith'犯了同樣的錯誤。 –

回答

5

How do I solve the Java error: 'The Method toLowerCase() is undefined for the type ArrayList'

我不能使用你在你的代碼發佈方法toLowerCase()看到。不過,我假設你正試圖在列表引用上調用toLowerCase()。列表沒有toLowerCase()方法。字符串有toLowerCase()方法。

你可能換貨做到這一點:

List<String> list = new ArrayList<String>(); 
System.out.println(list.get(0).toLowerCase()); //this is legal 
System.out.println(list.toLowerCase()); //this isn't legal as there is no toLowerCase() method in list 
0

據我所知toLowerCase()僅被定義爲字符串對象,所以迭代過程中從ArrayList的單串檢取,改變這個字符串,ArrayList中替換舊字符串

0

您不能在文件上使用.endsWith()。考慮到您使用for循環,您應該使用files[i].endsWith()。然而,使用增強的例如for (File currentFile : files)是一種比較常見的方法。

同樣的事情發生在.toLowerCase()方法。

相關問題