0

誰かがこの問題について私を助けることができますか?

   'public class DataBase {
        static Article[] arts;
        public static int FileNumber;
        public static String[] FileList;
        static File root;

        public DataBase(String ID, String TA) 
        {
            File root=new File(pth);
            FileList=root.list().length;
            String[] FileList=new String[FileNumber];
            for(int i=0;i<FileNumber;i++)
            {
                 FileList[i]=new String(root.list()[i]);
            }
            arts=new Article[FileNumber];
        }

        public void phase_0()   //Initializare lista articole
        {
            for(int i=0;i<FileNumber;i++)
            {
                 System.out.println(FileList[i]); ******
            }
        }
    }'

**でマークされた行でランタイムエラーが発生します。私はその問題について何も知りません。誰かが助けることができますか?

明確にするために、staticvoidmainでは最初にコンストラクターを使用します

DataBase db=new DataBase(...) 

その後

db.phase_0();

そして、指定された行でこの最後のメソッドでエラーが発生します。よろしくお願いします!必要に応じて挿入しますPATHが、問題ないことを保証します

4

2 に答える 2

3

あなたはpublic static String[] FileListこの線であなたを陰影付けしています:

String[] FileList=new String[FileNumber];

そのはず:

FileList = new String[FileNumber];
于 2012-06-21T21:20:30.683 に答える
1

グローバルFileList配列は、コンストラクターのローカル配列によってオーバーライドされます。String[]ローカル宣言から を削除してグローバルにします。

于 2012-06-21T21:25:18.163 に答える