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]); ******
            }
        }
    }'

我在标有**的行出现运行时错误。我对这个问题没有任何想法。有人可以帮忙吗?

需要澄清的是,在 static void main 我首先使用构造函数

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 回答