我正在使用Eclipse来完成大学任务,仍在学习如何编写代码,所以请忽略附件中的劣质工作!我已经创建了一个用于文件处理的类,并且发生了最奇怪的事情,Eclipse告诉我一个已经存在的分号是预期的。我根本看不出问题是什么,在课程的其他部分评论,看看是否有任何不同,但问题仍然存在。
错误显示在ObjectOutputStream superObjectOutputStream;
行上。
这是我的代码:
package filehandling;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class SuperstarFile {
File superFile;
FileInputStream superFileInputStream;
FileOutputStream superFileOutputStream;
ObjectInputStream superObjectInputStream;
ObjectOutputStream superObjectOutputStream;
superFile = new File("superstars.data");
/*
public void saveFile (ArrayList maleWrestler)
{
try
{
superFileOutputStream = new FileOutputStream(superFile);
superObjectOutputStream = new ObjectOutputStream(superFileOutputStream);
superObjectOutputStream.writeObject(maleWrestler);
superObjectOutputStream.close();
superFileOutputStream.close();
}
catch(final Exception e){
JOptionPane.showMessageDialog(null, "Ooops - " +e);
}
}
public ArrayList readFile(ArrayList goingIn)
{
ArrayList temp;
try{
superFileInputStream = new FileInputStream(superFile);
superObjectInputStream = new ObjectInputStream(superFileInputStream);
temp = (ArrayList) superObjectInputStream.readObject();
superObjectInputStream.close();
superFileInputStream.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Ooops - " +e);
}
return temp;
}
*/
}
答案 0 :(得分:3)
您正在为实例字段指定一个值,而不包含大括号或您的作业周围的方法或构造函数的主体。
变化:
superFile = new File("superstars.data");
要:
{
superFile = new File("superstars.data");
}
...用于实例块。
否则将赋值放在构造函数中:
SuperstarFile() {
superFile = new File("superstars.data");
}
您还可以使用实例方法:
void doSomething() {
superFile = new File("superstars.data");
}
或者,如其他地方所述,您可以直接在声明中指定您的字段:
File superFile = new File("superstars.data");
答案 1 :(得分:1)
你的问题不是';'但随着它的分配。改变这样的代码:
public class SuperstarFile {
FileInputStream superFileInputStream;
FileOutputStream superFileOutputStream;
ObjectInputStream superObjectInputStream;
ObjectOutputStream superObjectOutputStream;
File superFile = new File("superstars.data");
...
}
它不会给出错误信息 但要做一些真正的工作,你的文件应该有方法。