我正在开展一个小组项目,我们遇到了软件序列化部分的问题 . 我们有类协议:

import java.io.Serializable;

import javax.swing.table.TableModel;

public class Protocol implements Serializable{

private static final long serialVersionUID = 3474882407641871963L;

private int state;//0 = logged out

//1=logged in waiting for search

//2= search query sent

private String output;

private TableModel searchResults;

public Protocol(int state){

this.output = "";

this.state = 0;

this.searchResults = null;

}

public void setState(int s) {

this.state = s;

}

public void setOutput(String o) {

this.output = o;

}

public void setSearchResults(TableModel results) {

this.searchResults = results;

}

public String getOutput() {

return this.output;

}

public int getState(){

return this.state;

}

public TableModel getSearchResults(){

return this.searchResults;

}

}

我们还有SearchResult类:

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import javax.swing.event.TableModelListener;

import javax.swing.table.TableModel;

/**

* An implementation of the TableModel interface that utilises a List of DataRow objects to

* store the data.

*

* @version 13/03/2014

* @author Jake Darby

*

* @see DataRow

* @see TableModel

*/

public class SearchResult implements TableModel

{

private final List DATA;

private static final int NUM_COLUMNS = 8;

private final int NUM_ROWS;

/**

* Constructor that generates a SearchResult object from a set of Results of a query to the 'products' table

*

* @param data The results of an SQL query of the 'products' table

* @throws SQLException

*

* @see ResultSet

*/

public SearchResult (ResultSet data) throws SQLException

{

super();

DATA = DataRow.generate(data);

NUM_ROWS = DATA.size();

}

/**

* Constructor creates an empty TableModel

*/

public SearchResult()

{

super();

DATA = new ArrayList();

NUM_ROWS = 0;

}

@Override

public int getRowCount()

{

return NUM_ROWS;

}

@Override

public int getColumnCount()

{

return NUM_COLUMNS;

}

@Override

public String getColumnName(int columnIndex)

{

switch(columnIndex)

{

case 0:

return "ID";

case 1:

return "Name";

case 2:

return "Price";

case 3:

return "Pack Quantity";

case 4:

return "Quantity in Stock";

case 5:

return "VAT";

case 6:

return "Order Date";

case 7:

return "Expiry Date";

default:

return null;

}

}

@Override

public Class getColumnClass(int columnIndex)

{

switch(columnIndex)

{

case 0:

case 3:

case 4:

return Integer.class;

case 1:

case 2:

case 6:

case 7:

return String.class;

case 5:

return Boolean.class;

default:

return null;

}

}

@Override

public boolean isCellEditable(int rowIndex, int columnIndex)

{

return false;

}

@Override

public Object getValueAt(int rowIndex, int columnIndex)

{

DataRow row = DATA.get(rowIndex);

switch(columnIndex)

{

case -1:

return row.getPrice();

case 0:

return row.getID();

case 1:

return row.getName();

case 2:

return String.format("£%d.%02d", row.getPrice()/100, row.getPrice()%100);

case 3:

return row.getPackQuantity();

case 4:

return row.getQuantity();

case 5:

return row.getVAT();

case 6:

return row.getOrderDate() == null ? "N/A" : row.getOrderDate();

case 7:

return row.getExpiryDate() == null ? "N/A" : row.getExpiryDate();

default:

return null;

}

}

@Override

public void setValueAt(Object aValue, int rowIndex, int columnIndex)

{/*No implementation*/}

@Override

public void addTableModelListener(TableModelListener l)

{/*No implementation*/}

@Override

public void removeTableModelListener(TableModelListener l)

{/*No implementation*/}

@Override

public String toString()

{

String result = "";

for (int i = 0; i

当我们通过客户端 - 服务器套接字连接编写Protocol类时会出现问题 . 问题是Protocol类中的TableModel对象在序列化/反序列化过程中的某个时刻变为null,我们所做的任何事情都没有解决这个问题 .

我们到目前为止尝试过:

在SearchResult中实现Serializable(我不认为由于TableModel实现Serializable而应该是必要的)

将TableModel字段变量更改为Protocol中的SearchResult字段变量

非常感激任何的帮助 .

java反序列化为空_Java序列化/反序列化,提供空对象引用相关推荐

  1. JAVA生成json效率_java序列化和json序列化效率对比

    一.背景 有项目需要传输Map结构的数据,有人倾向用Java序列化来做,有人倾向用JSON的序列化来做.所以我们还是比比吧. Java观点:Object2Object,使用时简单快速. JSON观点: ...

  2. java objectoutputstream怎么用_java序列化与ObjectOutputStream和ObjectInputStream的实例详解...

    java序列化与ObjectOutputStream和ObjectInputStream的实例详解 一个测试的实体类: public class Param implements Serializab ...

  3. java 字符串为空_java判断字符串为空,方法详解

    之前给大家介绍过关于java输出字符串的方法,那么下面要给大家带来的就是java判断字符串为空的方法,一起来通过下面的文章内容进行一下详细的了解吧. java判断字符串最常见的四种方法: 方法1if  ...

  4. JAVA中equals空_Java中为什么查询空字符串跟判断是否为null的时候可以不用equals?...(亲测)

    if(id!=null&&id!="") 代码中经常这样写,空字符串跟null 都不用equals吗? 首先,你的 id!="" 这种写法是错误 ...

  5. java的方法返回对象为空_java接口返回为空时候如何处理

    java前后端分离以后,后端常常返回给前端以下的内容: 如果遇到某个字段的内容为空的时候会出现这样的情况: 图中红色箭头的情况是一个数组集合,但是该集合为空,所以就返回null,但是我们如果想对于这样 ...

  6. java 判断不为空_Java判断不为空的工具类总结

    package com.bie.util; import java.util.Collection; import java.util.Iterator; import java.util.Map; ...

  7. java基础类型判空_java基础类型判空

    Swift教程_零基础学习Swift完整实例(九)_总结 五.总结 加上写博文的时间,用了前前后后一周左右的时间,每晚2小时左右,完成了这个改造,由于我是第一次碰swift,有些东西还用不顺手,用时比 ...

  8. java hashmap 实现 序列化_java – Jackson JSON对象映射器反序列化为LinkedHashMap而不是HashMap...

    我有一个有内部地图的POJO.我希望从我的 JSON反序列化为HashMap,但Jackson将内部映射从JSON反序列化为LinkedHashMap.我可以通过将Map的类型从"Map&q ...

  9. java序列化 反序列化_Java序列化– Java序列化

    java序列化 反序列化 Serialization in Java was introduced in JDK 1.1 and it is one of the important feature ...

  10. json序列化 java对象_Json 数据反序列化为Java对象

    前言:我们在项目中经常用到的是Json格式的数据,如果是将一个被Jackson转化为JSON数据格式的Java对象进行操作,我们就需要将JSON数据再反序列化为Java对象. 1.实体对象 packa ...

最新文章

  1. c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc
  2. 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 后续分析 | Application 替换位置 )
  3. mysql一张表两个索引字段是建两颗独立索引树吗?
  4. 初始化字典的6种方式
  5. Qt5.15.2+VS2019安装小结
  6. 对C#面向对象三大特性的一点总结
  7. Swift和Objective-C混编
  8. 第2章 一切都是对象
  9. List,Map,实体类,字符串相互转换
  10. 基于matlab的fisher线性判别及感知器判别_基于嵌入表示的网络实体对齐方法进展概述...
  11. 使用文章来增加流量和排名
  12. 港中文开源 | 融合视频目标检测与单目标、多目标跟踪
  13. 从“No space left on device”到删除海量文件
  14. wordpress去掉index.php,wordpress去掉url中index.php 创建分类目录404如何解决
  15. .net core5
  16. HMM中的前向法(转)
  17. 关于get和post的区别
  18. Beini FeedingBottle[小巧的无线密码破解系统]
  19. 物联网Wi-Fi,SIP 时代即将来临
  20. 图像处理之基础---去污算法

热门文章

  1. 构建之法阅读笔记三—结对编程
  2. 浏览器Firefox新标签页默认打开地址设置
  3. “DropDownList1”有一个无效 SelectedIndex,因为它不在项目列表中。
  4. C#与.NET程序员面试宝典 1.2.4 简历中的闪光点----突出可转移技能(可能是你忽略的优势)...
  5. MyCat分片规则之按自然月分片
  6. 深入理解Sentinel如何构建Node调用树
  7. EasyAndroid基础集成组件库之:EasyPhoto (单张)图片选择库
  8. 双十二大前端工程师读书清单
  9. 《UNIX网络编程 卷1:套接字联网API(第3版)》——2.13 常见因特网应用的协议使用...
  10. 解析大型.NET ERP系统 自动更新