Basically, I\'ve written a program that paints shapes onto the screen, and saves each of the shapes into an ArrayList. What I want to do is figure out how to save the ArrayL
To avoid NotSerializableException make sure:
Besides that you also need to define serialVersionUID for every Serializable class. Check all 3 cases above plus:
Note: your code may work without serialVersionUID sometimes but read the last paragraph in Serializable's javadoc to understand why it will be a problem depending on the environment.
There's a VM option to add details to the exception. It shows the root and nested classes failing to serialize:
-Dsun.io.serialization.extendedDebugInfo=true
Based on the call you are making to repaint()
in Shape, I'm guessing that it is in inner class. It therefore has a hidden variable referencing its enclosing instance. It will try to serialize that object along with itself. Is the outer class serializable? Or better yet, could Shape be made into an ordinary top-level class?