为什么我得到NotSerializableException异常,虽然我已经实现'Serializable' [英] why I'm getting NotSerializableException exception though I've implemented 'Serializable'

查看:349
本文介绍了为什么我得到NotSerializableException异常,虽然我已经实现'Serializable'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在类'userInfo'中实现了Serializable。仍然我异常。这是输出控制台 -

  java.io.WriteAbortedException:write aborted; java.io.NotSerializableException:java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)中的java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
$ java.io.NotSerializableException: b at java.util.ArrayList.readObject(ArrayList.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 )
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在java.io. ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
在java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
在java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
在java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
在java.io.Object InputStream.defaultReadFields(ObjectInputStream.java:1947)
在java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
在java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
在java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
在java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
在chatservernazmus.Server.getAllUser(Server.java :74)
在chatservernazmus.Server。< init>(Server.java:44)
在chatservernazmus.Main.main(Main.java:11)​​

这是我的两个课程:

  public class userInfo实现Serializable {
public ArrayList< User> allUser = new ArrayList< User>();

public void addUser(User e){
allUser.add(e);
}
public ArrayList< User> getAllUser(){
return allUser;
}
}


public class User {
public String userName =;
public String password =;
public String statusMessage =;
public ArrayList< String> friend = new ArrayList< String>();
public ArrayList< String> offlineMessage = new ArrayList< String>();

public User(String username,String password,String message){
userName = username;
password = password;
statusMessage = message;
}

public void setStatusMessage(String message){
statusMessage = message;
}
public void addFriend(String fr){
friend.add(fr);
}
public ArrayList< String> getOfflineMessage(){
ArrayList< String> str = new ArrayList< String>();
offlineMessage.clear();
return str;
}
}


解决方案


为什么我得到NotSerializableException异常,虽然我已经实现'Serializable'


你没有。 / p>


java.io.NotSerializableException:chatservernazmus.User
public class userInfo implements Serializable {
public class User { p>

用户类也必须是可序列化的。


I've implemented Serializable in class 'userInfo'. Still I'm getting exception. Here's the output console -

java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: chatservernazmus.User
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at java.util.ArrayList.readObject(ArrayList.java:593)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at chatservernazmus.Server.getAllUser(Server.java:74)
        at chatservernazmus.Server.<init>(Server.java:44)
        at chatservernazmus.Main.main(Main.java:11)

Here are my two classes:

public class userInfo implements Serializable{
    public ArrayList<User> allUser=new ArrayList<User>();

    public void addUser(User e){
        allUser.add(e);
    }
    public ArrayList<User> getAllUser(){
     return allUser;
    }
}


public class User{
    public String userName="";
    public String password="";
    public String statusMessage="";
    public ArrayList<String> friend=new ArrayList<String>();
    public ArrayList<String>offlineMessage=new ArrayList<String>();

    public User(String username,String password,String message){
        userName=username;
        password=password;
        statusMessage=message;
    }

    public void setStatusMessage(String message){
        statusMessage=message;
    }
    public void addFriend(String fr){
        friend.add(fr);
    }
    public ArrayList<String> getOfflineMessage(){
        ArrayList<String> str=new ArrayList<String>();
        offlineMessage.clear();
        return str;
    }
}

解决方案

why I'm getting NotSerializableException exception though I've implemented 'Serializable'

You haven't.

java.io.NotSerializableException: chatservernazmus.User public class userInfo implements Serializable{ public class User{

The User class must be serializable as well.

这篇关于为什么我得到NotSerializableException异常,虽然我已经实现'Serializable'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆