【问题标题】:Arraylist within class stored in an Arraylist does not become serialized存储在 Arraylist 中的类中的 Arraylist 不会被序列化
【发布时间】:2013-05-11 19:12:41
【问题描述】:

我存储了一个数组列表,在一个 myclass 中有一个数组列表,这个带有字符串的数组列表是空的,我不明白为什么。

由于外部数组列表的所有序列化都运行良好,并且我可以检索除数组列表中的字符串之外的所有信息,我认为序列化函数不是问题,但显然它是。我看不到我错过了什么,我花了一整天的时间试图找到问题,但我看不到。

有人知道我做错了什么吗?没有属性被设置为瞬态的,所以我不明白为什么它不会被存储。

代码片段:

import java.util.*;
import java.lang.*;
import java.text.*;
import java.io.Serializable;

public abstract class Accounts implements Cloneable,Serializable
{

public Accounts()
{
}

//Attributes declared  
private static final long serialVersionUID = 1L;
public ArrayList<String> lsttransact = new ArrayList<String>();  //  <-- This array is empty after load from serialied file

这个类存储在一个arraylist中,这就是我序列化的那个,这样做这个标记的arraylist变成空的。 :(

//问候

【问题讨论】:

  • 如果您发布您的代码,也许有人可以提供帮助
  • 我猜这是因为外部的所有数组列表都只是引用。如果您不发布代码,我只能猜测。
  • 实际的 Accounts 子类可能会导致序列化错误。

标签: java serialization


【解决方案1】:

问题非常简单,因为在使用存储在此数组中的这些值之前的守卫是使用“==”而不是打开盒子并查看内部,因为引用发生了变化。 .equals() 的使用很快解决了这个问题。

无论代码有多少英里,我都必须学会通过代码追逐白兔!将其归结为缺乏经验……但这会随着时间的推移而出现!

【讨论】:

    猜你喜欢
    • 2018-08-27
    • 2011-09-05
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多