Eclipse需要一个已存在的分号

时间:2014-11-13 11:45:24

标签: java eclipse syntax

我正在使用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;
}

*/
}

2 个答案:

答案 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");
...
}

它不会给出错误信息 但要做一些真正的工作,你的文件应该有方法。