Exception 不可序列化异常
我正在尝试为uni项目创建一个模拟购物车。im使用两个java类Item和shoppingCart,shoppingCart使用一个向量来存储项目,然后将它们写入文件。我试图使用jsp页面上的类,但当我试图写入文件时,我得到了一个java.io.WriteableOrtedException:写入中止;java.io.NotSerializableException:cart.Item。。。有什么办法可以解决这个问题吗???来自NotSerializableException上的javadoc。。。“当实例需要具有可序列化接口时引发。”Exception 不可序列化异常,exception,jsp,serialization,vector,Exception,Jsp,Serialization,Vector,我正在尝试为uni项目创建一个模拟购物车。im使用两个java类Item和shoppingCart,shoppingCart使用一个向量来存储项目,然后将它们写入文件。我试图使用jsp页面上的类,但当我试图写入文件时,我得到了一个java.io.WriteableOrtedException:写入中止;java.io.NotSerializableException:cart.Item。。。有什么办法可以解决这个问题吗???来自NotSerializableException上的javadoc。
这意味着要序列化的类需要实现可序列化标记接口。这里是一个小示例
import java.io.*;
class player implements Serializable{
String name;
double health;
double positionX;
double positionY;
int weapon;
}
class game{
public static void main(String[] args) throws Exception{
player character1 = new player();
character1.name = "Inukz";
character1.health = 82.62;
character1.positionX = 80;
character1.positionY = 33;
character1.weapon = 2;
player character2 = new player();
character2.name = "Prasad";
character2.health = 32.62;
character2.positionX = 40;
character2.positionY = 63;
character2.weapon = 3;
player character3 = new player();
character3.name = "Thilan";
character3.health = 12.62;
character3.positionX = 10;
character3.positionY = 83;
character3.weapon = 1;
FileOutputStream fileStream = new FileOutputStream("myGame.js",true);
ObjectOutputStream os = new ObjectOutputStream(fileStream);
os.writeObject(character1);
os.close();
}
}
要避免NotSerializableException,请确保:
有一个VM选项可以向异常添加详细信息。它显示无法序列化的根类和嵌套类:
-Dsun.io.serialization.extendedDebugInfo=true
您可以添加它需要一个“serialVersionUID”才能序列化。我尝试在两个类上实现Serializable,但没有luckDoes项包含任何不可序列化的成员?否则,我会再次检查您是否确实实现了java.io.Serializable。至于serialVersionUID,您应该拥有它,但是如果您不提供它,它不会导致NotSerializableException(运行时将在需要时自动计算版本ID)。