Eclipse需要一个已经存在的分号

问题描述 投票:0回答:2

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

*/
}
java eclipse syntax
2个回答
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
投票

你的问题不是';'但随着它的分配。改变这样的代码:

public class SuperstarFile {

    FileInputStream superFileInputStream;
    FileOutputStream superFileOutputStream;
    ObjectInputStream superObjectInputStream;
    ObjectOutputStream superObjectOutputStream;

    File superFile = new File("superstars.data");
...
}

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

© www.soinside.com 2019 - 2024. All rights reserved.