`

LIST<Object>序列化

    博客分类:
  • Java
阅读更多

有时候当需要远程传送一个LIST<Object>对象的时候会报无法序列化 的错误。解决办法可新建一个如下类:

/**
 * 
 */
package com.rodrigue.nepo.core.model;

import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;

/**
 * @author LEO.ZHOU
 * DATE 2009-12-9
 */
public class SerializableList<E> extends ArrayList<E> implements Externalizable{
        
        public SerializableList() {
                super();
        }
        
        public SerializableList(Collection<? extends E> c) {
                super(c);
        }

        public void readExternal(ObjectInput in) throws IOException,
                        ClassNotFoundException {
                int elementCount = in.readInt();
                this.ensureCapacity(elementCount);
                for (int i = 0; i < elementCount; i++) {
                        this.add((E) in.readObject());
                }
                
        }

        public void writeExternal(ObjectOutput out) throws IOException {
                out.writeInt(size());
                for (int i = 0; i < size(); i++) {
                        if (get(i) instanceof Serializable) {
                                out.writeObject(get(i));
                        } else {
                                out.writeObject(null);
                        }
                } 
        }

}

 

然后用SerializableList类代替你使用的ArrayList类即可实现远程传输。

分享到:
评论

相关推荐

    List转Json

    要将`List&lt;Object&gt;`转换为JSON,首先确保你的`Object`类已经正确实现了`Serializable`接口,这样Jackson才能正确地序列化它。然后,你可以使用`ObjectMapper`类来完成转换。下面是一个示例代码: ```java import ...

    浅谈C#中ListT对象的深度拷贝问题

    一、List&lt;T&gt;对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List&lt;T&gt; oldList = new List&lt;T&gt;(); oldList.Add(..); List&lt;T&gt; newList = new List&lt;T&gt;(oldList); 二、List&lt;T&gt;对象...

    C# 解析json格式数据为IList

    C#中解析JSON通常使用的是Json.NET库,这是一个非常流行且功能强大的开源库,可以方便地进行JSON序列化和反序列化。如果你还没有安装,可以通过NuGet包管理器添加Json.NET到你的项目中。 使用Json.NET解析JSON为...

    Vector初始化的各种写法

    Vector&lt;Object&gt; vector = new Vector&lt;&gt;(); ``` 在C++中,STL中的`vector`类也有类似的默认构造函数: ```cpp std::vector&lt;int&gt; vec; ``` 2. **指定容量初始化**: 有时我们可能知道Vector将要存储的元素数量...

    json字符串转成 Map/List

    在Java中,将JSON字符串转换为Map或List是常见的操作,这在处理服务器返回的数据或者进行数据序列化时非常有用。 JSON字符串的结构主要包括对象(键值对的集合,用花括号{}包围)和数组(有序元素的集合,用方括号...

    List<Bean>转JasonStringer

    这个过程通常涉及到对象序列化,即将Java对象转换为JSON格式的字符串,以便在网络间传输或者存储在文件中。下面将详细阐述如何实现这个转换。 首先,我们需要了解`Bean`类。在Java中,`Bean`是一种遵循特定规范的...

    JAVA基于SnakeYAML实现解析与序列化YAML

    Map&lt;String, Object&gt; obj = yaml.load(inputStream); System.out.println(obj); 基本用法 SnakeYAML库提供了一种基本的YAML解析和序列化方法。例如,使用Yaml类的load()方法可以将YAML文档加载到一个Map对象中。...

    spring,cxf,restful发布webservice传递List,Map,List&lt;Map&gt;

    当我们需要在Web服务中传递复杂对象,如List、Map或List&lt;Map&gt;时,可以使用Java的序列化机制。在CXF中,可以通过JAXB(Java Architecture for XML Binding)将Java对象转换为XML格式,以便在网络间传输。例如,如果你...

    实体类的简单基础应用 List 与 JSON 互相转换

    同样,我们也可以将JSON字符串反序列化回List&lt;Student&gt;: ```csharp string jsonString = "{\"Id\":1,\"Name\":\"张三\",\"Age\":20}"; // 假设这是一个JSON字符串 List&lt;Student&gt; deserializedStudents = ...

    JSON--List集合转换成JSON对象详解

    文中提到使用JsonConfig来设置JsonPropertyFilter,这样可以在序列化过程中过滤掉不需要的属性或对象。这是一种更加精细的控制方式,可以避免在JSON中暴露不应该公开的数据。 5. Hibernate配置关系映射: 为了更好...

    java XML转成LIST可以转成指定的类数组

    JAXB允许我们在Java类和XML元素之间建立映射,从而实现XML到Java对象的自动序列化和反序列化。首先,我们需要创建一个对应的Java类,该类的字段将与XML元素对应。 3. **创建Java模型类** 假设我们的XML文件具有...

    C#编程经验技巧宝典

    24&lt;br&gt;&lt;br&gt;0051 变量的作用域 25&lt;br&gt;&lt;br&gt;2.5 其他 26&lt;br&gt;&lt;br&gt;0052 有效使用this对象 26&lt;br&gt;&lt;br&gt;0053 如何声明变量 26&lt;br&gt;&lt;br&gt;0054 如何声明相同类型的多个变量 26&lt;br&gt;&lt;br&gt;0055 利用Object变量传递参数 ...

    java中ArrayListMapObject与Json互相转换.pdf

    List&lt;Map&lt;String, Object&gt;&gt; list = new ArrayList&lt;&gt;(); Map&lt;String, Object&gt; map1 = new HashMap&lt;&gt;(); map1.put("name", "大憨"); map1.put("age", 24); list.add(map1); Map&lt;String, Object&gt; map2 = new HashMap&lt;&gt;...

    json与List-map互换和jar

    Map&lt;String, Object&gt; myMap = new HashMap&lt;&gt;(); // 填充Map... Gson gson = new Gson(); String jsonString = gson.toJson(myMap); ``` 2. **JSON转Map** 将JSON字符串解析回`Map`,同样使用`Gson`库,但...

    C#序列化与反序列化(包括复杂xml对象)

    string xmlString = "&lt;MyData&gt;&lt;KeyValue&gt;&lt;item key=\"key1\"&gt;value1&lt;/item&gt;&lt;item key=\"key2\"&gt;value2&lt;/item&gt;&lt;/KeyValue&gt;&lt;TagValue&gt;tagValue&lt;/TagValue&gt;&lt;ObjectArray&gt;&lt;Object&gt;&lt;NestedTag&gt;nestedValue1&lt;/NestedTag&gt;&lt;/...

    hibernate 教程

    标识字段和序列(Identity columns and Sequences)&lt;br&gt;5.1.4.5. 程序分配的标识符(Assigned Identifiers)&lt;br&gt;5.1.5. composite-id 联合ID&lt;br&gt;5.1.6. 识别器(discriminator)&lt;br&gt;5.1.7. 版本(version)(可选)...

    hibernate

    标识字段和序列(Identity columns and Sequences)&lt;br&gt;5.1.4.5. 程序分配的标识符(Assigned Identifiers)&lt;br&gt;5.1.5. composite-id 联合ID&lt;br&gt;5.1.6. 识别器(discriminator)&lt;br&gt;5.1.7. 版本(version)(可选)...

    Json解析简单数据<二>

    这里,`TypeToken`用于保存类型信息,使得Gson在反序列化时能正确识别List中的元素类型。 总结起来,通过谷歌的Gson库,我们可以轻松地将JSON字符串解析为Java对象,同时结合泛型和TypeToken可以处理更复杂的数据...

    ajax和json跟java实现List、Map直接传递

    Map&lt;String, String&gt; map = new HashMap&lt;&gt;(); map.put("key1", "value1"); map.put("key2", "value2"); JSONObject jsonObject = new JSONObject(map); ``` 然后,你可以通过Ajax发送这个JSON字符串到服务器。例如...

    JSON序列化反序列化带List

    例如,假设你有一个`TList&lt;T&gt;`类型的变量`Items`,你可以这样序列化: ```delphi uses System.JSON; var JSONValue: TJSONObject; JSONArray: TJSONArray; Item, ItemJSON: TJSONValue; I: Integer; ...

Global site tag (gtag.js) - Google Analytics