Проблема сериализации - PullRequest
0 голосов
/ 26 мая 2019

Я создал класс TestScores и изменил его для обработки некоторых исключений. Я должен сериализовать то, что в классе. Мой учебник не слишком хорош для объяснения этого, поэтому мне нужна помощь. Мой класс TestScores работает нормально, я просто не понимаю часть сериализации.

Я использовал примеры в книге и попытался смоделировать их

public class TestScores implements Serializable
{
    //Integer array will hold test scores
    private int[] scores;

public TestScores(int[] newScores) throws InvalidTestScore
{
    scores = newScores;
}

// Method will calculate average of test scores
public  int getAverageScore() throws InvalidTestScore
{
    // Will hold score total
    int total = 0;
    // will hold average of score
    int average = 0;

    //Loop will scan index of the scores array in order to attain the scores
    // A try statement is used to catch any score that is outside of the range(0-100)
    for(int index = 0; index < scores.length; index++)
    {
        total += scores[index]; 

        average = total/scores.length;

        try
        {
            if(scores[index] < 0 || scores[index] > 100)
            {
                throw new InvalidTestScore("Index is " + index + " Score is " + scores[index]);
            }
        }
        catch(InvalidTestScore e)
        {
            System.out.println("Error: Scores can only range between 0 and 100 " + "\n" + e.getMessage());
        }

    }  
    return average;
}


// getAverage method is demonstrated in a main menthod

public static void main(String[] args) throws InvalidTestScore,FileNotFoundException,IOException
{
    //int[] newScores = new int[10];
    int[] scores ={92,64,76,88,53,80,96,60,70,103};
    TestScores test = new TestScores(scores);

    System.out.println(test.getAverageScore());
}

}

public class Serialize implements Serializable
{
    public static void main(String[] args) throws IOException
    {
        TestScores test = new TestScores();
        FileOutputStream outStream = new FileOutputStream("Scores.dat"); 
        ObjectOutputStream objectOutputFile = new ObjectOutputStream(outStream); 
        objectOutputFile.writeObject(test); 
    }
}
...