我想创建一个我创建的类型的数组。
这是我的问题:
public class MyFile
{
int page_no=23;
Page[] pages_in_file;
MyFile()
{
pages_in_file=new Page[page_no];
}
}
当调试到达Page []部分时,Java会出错,它甚至不会使用Page的构造函数 Page Class是这样的:
public class Page
{
String data=null;
String contain=null;
Page()
{
data = new String();
contain = new String();
}
}
错误说:“找不到源”并在我尝试访问数组中的元素时给出此NullPointerException。 我想我没有看到明显的错误,但我感谢任何帮助。感谢
答案 0 :(得分:2)
Java只为您的类分配内存,它在初始化数组时不运行构造函数。至少,您需要添加:
for (int i = 0; i < pages_in_file.length; i++)
pages_in_file[i] = new Page();
答案 1 :(得分:0)
构造对象数组并不意味着构造对象。因此,您的错误(很可能)page_no
为负数或未设置。不幸的是,您的演示代码不包含page_no
的定义和值。
答案 2 :(得分:-3)
这是因为File类。 Java有一个名为File的类,它是一个final类,所以你需要将File类重命名为其他类。