-1

特定のファイル タイプ (.dbf) を持つ特定のディレクトリ内のファイルをスピナーに取り込もうとしています。残念ながら、「メソッド toLowerCase() は ArrayList 型に対して定義されていません」というエラーが表示され続けます。どうすれば解決できますか?

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")){

files は、スクリプトの先頭で次のように宣言されます。

ArrayList<String> files = new ArrayList<String>();
4

3 に答える 3

6

Java エラーの解決方法: 「メソッド toLowerCase() は 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
于 2012-12-18T12:28:16.297 に答える
0

私が知っているように toLowerCase() は文字列オブジェクトに対してのみ定義されているため、反復中にArrayListから単一の文字列を取得し、この文字列を変更してArrayListの古い文字列を置き換えます

于 2012-12-18T12:30:14.937 に答える
0

.endsWith()ファイルでは使用できません。forループを使用していることを考えると、 files[i].endsWith(). ただし、拡張された for, eg を使用するfor (File currentFile : files)方がより一般的なアプローチです。

メソッドについても同じことが言え.toLowerCase()ます。

于 2012-12-18T12:32:12.263 に答える