Ian*_*son 0 java arrays generics object nullpointerexception
使用此代码,我尝试将包含数据的文件加载到对象数组中.我没有正确地对象中的字段,因为当我运行此代码时,我得到一个NullPointerException.数组在那里,甚至是正确的大小,但字段没有初始化.我该怎么解决这个问题?
这是代码:
public class aJob {
public int job;
{
job = 0;
}
public int dead;
{
dead = 0;
}
public int profit;
{
profit = 0;
}
}
public class Main {
public static void main(String[]args) throws IOException {
File local = readLines();
Scanner getlength = new Scanner(local);
int lines = 0;
while (getlength.hasNextLine()) {
String junk = getlength.nextLine();
lines++;
}
getlength.close();
Scanner jobfile = new Scanner(local); // check if empty
aJob list[] = new aJob[lines];
aJob schedule[] = new aJob[lines];
int index = 0;
list[index].job = jobfile.nextInt();
}
public static File readLines() throws IOException
{
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
// ignore exceptions and continue
}
JFileChooser chooser = new JFileChooser();
try {
int code = chooser.showOpenDialog(null);
if (code == JFileChooser.APPROVE_OPTION) {
return chooser.getSelectedFile();
}
} catch (Exception f) {
f.printStackTrace();
System.out.println("File Error exiting now.");
System.exit(1);
}
System.out.println("No file selected exiting now.");
System.exit(0);
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
声明一个数组是不够的.您必须使用对象实例填充它.
aJob list[] = new aJob[lines];
aJob schedule[] = new aJob[lines];
for (int i = 0; i < lines; i++){ list[i] = new aJob(); schedule[i] = new aJob(); }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |