- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名 Java 学生,遇到了一些麻烦。所以我正在编写一个名为“LinkedInCLI”的程序它使用 4 个不同的类:
我目前正在编写“LinkedInCLI”类来执行各种功能。其中一个函数是将“用户”添加到用户数组列表中,对象 LinkedInUser 由“帐户”的名称、密码和“帐户类型”定义
实际上,它们只是确定有关“用户”信息的所有字符串。它的构造函数如下所示。
public class LinkedInUser extends UserAccount implements java.io.Serializable ,Comparable<LinkedInUser>{
public LinkedInUser(String user, String pass , String type) {
super(user, pass, type);
}
好的,现在回答这个问题:
一旦我创建了这些用户,他们就会进入 LinkedInUsers 的 ArrayList,如下所示。
private static List<LinkedInUser> users = new ArrayList<>();
它位于 LinkedInCLI 内部,而不是在 main 方法内部。它位于私有(private)领域等旁边。
我想将 ArrayList 序列化为 .DAT 文件,完成此操作后,我想终止我的程序并再次执行它,并从程序执行中读取先前的 ArrayList。完成此操作后,ArrayList 应该与之前的执行相同。
但我一直遇到“NotSerializedException”。我已经编写了 ObjectOutputStream 和 ObjectInputStream,它们看起来编写正确,但有些问题,它不会写入对象。这就是我的流的样子
ObjectOutputStream oos = null;
try
{
// CREATE file path and display it
new File(PATH).mkdirs();
System.out.println(PATH);
// SAVE arraylist
oos = new ObjectOutputStream(new FileOutputStream(PATHPLUSNAME));
oos.writeObject(users);
System.out.println("Writing users to file");
System.out.println(": " + users);
//CLOSE resources
oos.flush();
oos.close();
}
catch (FileNotFoundException FNFO) {
System.out.println("The file was not found");
}
catch(NotSerializableException NSEO) {
System.out.println("Type is not serializable");
}
catch (IOException IOEXO) {
System.out.println("Could not serialize users");
}
<小时/>
try {
LinkedInUser test = new LinkedInUser();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(PATHPLUSNAME));
ArrayList usersCopied = (ArrayList<LinkedInUser>) ois.readObject();
users.addAll(usersCopied);
ois.close();
}
catch (FileNotFoundException FNFI) {
System.out.println("The file was not found");
}
catch (IOException IOEXI) {
System.out.println("Could not Deserialize users");
}
catch (ClassNotFoundException CLNI) {
System.out.println("Could not find class");
}
我的问题确实是:为什么这个异常总是抛出?起初,这只是一个 IOException,但后来我查找了子异常并尝试了所有异常,最后发现它就是“NotSerializedException”。
注意:所有其他类也实现可序列化...
-------------------------------------------------------- --------------------------------这个问题已经解决了,问题是我的 UserAccount 方法实现了可序列化,但它也实现了类似的,它没有实现了可序列化,我也通过查看oracle文档发现了这一点。 UserAccount 类顶部有一些杂散扫描仪,它们也无法序列化。
对于任何帮助我与我一起讨论这个问题的人,谢谢。你们太棒了!
最佳答案
我已经检查了您的代码,没有父类(super class)UserAccount
- 它工作正常。
由于您没有提供UserAccount
的源代码,那么有两种可能性:
首先是 UserAccount
实现了 java.io.Serialized
确实如您所说。在这种情况下,请确保您的父类(super class)的所有字段(或这些字段的父类(super class)等等......)也实现了 java.io.Serialized
。
第二 - 事实上您忘记实现 Serialized 或以某种方式无法实现。在这种情况下,要扩展UserAccount
,您还需要向该类添加无参数构造函数。换句话说,您的类的第一个不可序列化的父类(super class)需要无参数构造函数。
下表解释得很清楚:
来源:Image
提示:如果它仍然不适合您,那么您可以尝试将 UserAccount
类的字段标记为 transient
,然后编译以查看哪个字段导致问题。这些字段将不会被序列化。
transient String field;
关于java - (已解决)序列化(写入)充满对象的Arraylist不断抛出 "NotSerializableException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60024175/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!