Hashtable problem - java.io.NotSerializableException
I'm having trouble writing a hashtable out to a file. I know that the writeObject() method in ObjectOutputStream requires whatever it writes to be serializable, so I made the PlayerScore class implement serializable.. Now it gives "Not serializable Exeption: java.io.NotSerializableException: PluginMain" where PluginMain is the class that contains the hashtable. If I have it Implement Serializable I get the same error with what I would guess is a super class of mine named BotCore.
All the source is here: www.witcheshovel.com/WartsStuff/PluginMain.java
Here are what I believe to be the offending portions of the code:
private Hashtable<String, PlayerScore> scoreTable;
private void saveScores() {
try {
out.showMessage("Hash a a string: " + scoreTable.toString());
String scoreFile = getSetting("8. Score File");
FileOutputStream fileOut = new FileOutputStream (scoreFile);
ObjectOutputStream objectOut = new ObjectOutputStream(fileOut);
Object scores = (Object)scoreTable;
//objectOut.writeObject(scores);
objectOut.writeObject(scoreTable);
objectOut.close();
fileOut.close();
}
catch (NotSerializableException a) {out.showMessage("Not serializable Exeption: " + a);}
catch (Exception e) {out.showMessage("Failed to save file with error:" + e);}
}
public class PlayerScore implements Serializable {//Class for keeping player scores
String playerName;
int longestStreak=0;
int totalCorrect=0;
public PlayerScore() {}
public PlayerScore(String name) {
playerName = name;
}
public void setTotalCorrect(int newCorrect) {
totalCorrect = newCorrect;
}
public void incTotalCorrect() {
totalCorrect++;
}
public void setLongestStreak(int streak) {
longestStreak=streak;
}
public void incLongestStreak() {
longestStreak++;
}
public String getName() {
return playerName;
}
public int getStreak() {
return longestStreak;
}
public int getTotalCorrect() {
return totalCorrect;
}
}

