java反序列化为空_Java序列化/反序列化,提供空对象引用
我正在开展一个小组项目,我们遇到了软件序列化部分的问题 . 我们有类协议:
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序列化/反序列化,提供空对象引用相关推荐
- JAVA生成json效率_java序列化和json序列化效率对比
一.背景 有项目需要传输Map结构的数据,有人倾向用Java序列化来做,有人倾向用JSON的序列化来做.所以我们还是比比吧. Java观点:Object2Object,使用时简单快速. JSON观点: ...
- java objectoutputstream怎么用_java序列化与ObjectOutputStream和ObjectInputStream的实例详解...
java序列化与ObjectOutputStream和ObjectInputStream的实例详解 一个测试的实体类: public class Param implements Serializab ...
- java 字符串为空_java判断字符串为空,方法详解
之前给大家介绍过关于java输出字符串的方法,那么下面要给大家带来的就是java判断字符串为空的方法,一起来通过下面的文章内容进行一下详细的了解吧. java判断字符串最常见的四种方法: 方法1if ...
- JAVA中equals空_Java中为什么查询空字符串跟判断是否为null的时候可以不用equals?...(亲测)
if(id!=null&&id!="") 代码中经常这样写,空字符串跟null 都不用equals吗? 首先,你的 id!="" 这种写法是错误 ...
- java的方法返回对象为空_java接口返回为空时候如何处理
java前后端分离以后,后端常常返回给前端以下的内容: 如果遇到某个字段的内容为空的时候会出现这样的情况: 图中红色箭头的情况是一个数组集合,但是该集合为空,所以就返回null,但是我们如果想对于这样 ...
- java 判断不为空_Java判断不为空的工具类总结
package com.bie.util; import java.util.Collection; import java.util.Iterator; import java.util.Map; ...
- java基础类型判空_java基础类型判空
Swift教程_零基础学习Swift完整实例(九)_总结 五.总结 加上写博文的时间,用了前前后后一周左右的时间,每晚2小时左右,完成了这个改造,由于我是第一次碰swift,有些东西还用不顺手,用时比 ...
- java hashmap 实现 序列化_java – Jackson JSON对象映射器反序列化为LinkedHashMap而不是HashMap...
我有一个有内部地图的POJO.我希望从我的 JSON反序列化为HashMap,但Jackson将内部映射从JSON反序列化为LinkedHashMap.我可以通过将Map的类型从"Map&q ...
- java序列化 反序列化_Java序列化– Java序列化
java序列化 反序列化 Serialization in Java was introduced in JDK 1.1 and it is one of the important feature ...
- json序列化 java对象_Json 数据反序列化为Java对象
前言:我们在项目中经常用到的是Json格式的数据,如果是将一个被Jackson转化为JSON数据格式的Java对象进行操作,我们就需要将JSON数据再反序列化为Java对象. 1.实体对象 packa ...
最新文章
- c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc
- 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 后续分析 | Application 替换位置 )
- mysql一张表两个索引字段是建两颗独立索引树吗?
- 初始化字典的6种方式
- Qt5.15.2+VS2019安装小结
- 对C#面向对象三大特性的一点总结
- Swift和Objective-C混编
- 第2章 一切都是对象
- List,Map,实体类,字符串相互转换
- 基于matlab的fisher线性判别及感知器判别_基于嵌入表示的网络实体对齐方法进展概述...
- 使用文章来增加流量和排名
- 港中文开源 | 融合视频目标检测与单目标、多目标跟踪
- 从“No space left on device”到删除海量文件
- wordpress去掉index.php,wordpress去掉url中index.php 创建分类目录404如何解决
- .net core5
- HMM中的前向法(转)
- 关于get和post的区别
- Beini FeedingBottle[小巧的无线密码破解系统]
- 物联网Wi-Fi,SIP 时代即将来临
- 图像处理之基础---去污算法
热门文章
- 构建之法阅读笔记三—结对编程
- 浏览器Firefox新标签页默认打开地址设置
- “DropDownList1”有一个无效 SelectedIndex,因为它不在项目列表中。
- C#与.NET程序员面试宝典 1.2.4 简历中的闪光点----突出可转移技能(可能是你忽略的优势)...
- MyCat分片规则之按自然月分片
- 深入理解Sentinel如何构建Node调用树
- EasyAndroid基础集成组件库之:EasyPhoto (单张)图片选择库
- 双十二大前端工程师读书清单
- 《UNIX网络编程 卷1:套接字联网API(第3版)》——2.13 常见因特网应用的协议使用...
- 解析大型.NET ERP系统 自动更新