`
elite20130514
  • 浏览: 47803 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

读编写高质量代码整理(二续)

阅读更多

请先看完(二),这里直接该处解决办法,写一个CloneUtils(克隆工具)

package clone;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class CloneUtils {
	@SuppressWarnings("unchecked")//告诉java编译器不要类型检查
	public static<T extends Serializable> T clone(T obj) {
		
		//拷贝产生的对象
		T cobj = null;
		try {
			//读取对象字节数据
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			ObjectOutputStream oos = new ObjectOutputStream(baos);
			oos.writeObject(obj);//写入内存
			oos.close();
			
			ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());//从内存读取byte数组
			ObjectInputStream ois = new ObjectInputStream(bais);		
			cobj =(T) ois.readObject();//从内存读取数据,类似拷贝
			ois.close();
		}catch(Exception e) {
			e.printStackTrace();
		}
		return cobj;
	}
}

 pojo类:

 

package clone;

import java.io.Serializable;

public class Employee implements Serializable{
	
	/**
	 * serialVersionUID 判断反序列化是否为同一对象,如此程序可正常升级,
	 * 如果不显示声明serialVersionUID,则会造成反序列化的对象和原来对象不匹配
	 */
	private static final long serialVersionUID = -4791800223225662659L;
	
	private String name ;
	
	private Employee boss;
	
	public Employee(String _name) {
		name = _name;
	}

	public Employee(String _name,Employee _boss) {
		name = _name;
		boss = _boss;
	}
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Employee getBoss() {
		return boss;
	}

	public void setBoss(Employee boss) {
		this.boss = boss;
	}

}

 如果你嫌麻烦,可以使用Apache下的commons工具包的SerializationUtils类

分享到:
评论

相关推荐

    编写高质量C语言代码

    ### 编写高质量C语言...通过对本书的学习,读者不仅能掌握编写高质量代码的具体方法,还能深刻理解代码质量对于软件开发的重要性。无论是对于新手程序员还是有一定经验的开发者来说,这本书都是一本不可多得的好书。

    如何编写高质量JS代码(续)

    继续上一篇文章《如何编写高质量JS代码》今次整理一下javascript函数知识点。 2.使用函数 函数给程序员提供了主要的抽象功能,又提供实现机制。函数可以独立实现其他语言中的多个不同的特性,例如,过程、方法、构造...

    Verilog代码编写规范

    ### Verilog代码编写规范详解 #### 一、代码编写风格的重要性 在FPGA设计领域,Verilog作为一种重要的硬件描述语言,其代码的质量直接影响到项目的...Verilog代码编写规范的制定与遵循,是实现高质量FPGA设计的基础。

    C语言代码自动整理工具

    3. **代码重构**:高级的C语言代码整理工具可能包含代码重构功能,比如提取函数、重命名变量、消除重复代码等,这些操作在大型项目中尤其重要,能够帮助改善代码结构,提高代码质量。 4. **代码检查**:部分工具还...

    delphi代码整理工具

    标题中的"Delphi代码整理工具"指的是专门针对使用Delphi编程语言编写的代码进行优化、格式化和整理的软件工具。Delphi是一种基于Object Pascal语言的集成开发环境,广泛用于创建Windows桌面应用程序。代码整理工具在...

    C自动整理代码风格工具

    为了统一代码风格,提高代码质量,我们可以使用自动代码整理工具。这些工具能够按照特定的编码规范,如K&R、LLVM或GNU等,对C代码进行格式化,使得代码更加整洁,便于阅读和维护。 本文将深入探讨C语言的自动代码...

    sonarqube代码规范整理_jchaoy

    SonarQube 代码规范整理 SonarQube 是一个静态代码分析工具,...SonarQube 代码规范整理旨在帮助开发者编写高质量、安全的代码。通过遵守这些规范,开发者可以避免常见的 bug、漏洞和异味,从而提高代码质量和安全性。

    《高质量》第二版勘误

    这两份名为《高质量程序设计指南——C++&C语言(第二版)》勘误(1).doc和(2).doc的文件,很可能是作者或编辑团队在收集了读者反馈后整理的错误清单,包含了书中错别字、语法错误、逻辑错误、代码示例的不正确性等多...

    java代码整理

    "java代码整理"可能指的是对已经编写完成的Java程序进行优化、重构或分类管理的过程。这个过程对于保持代码的整洁性、提高代码可读性和维护性至关重要。下面,我们将深入探讨Java编程的一些关键知识点: 1. **基础...

    代码阅读整理5

    【代码阅读整理5】 在软件开发过程中,代码阅读是一项至关重要的技能,它涉及到对他人编写的源代码的理解、分析和评估。"代码阅读整理5"可能是某个系列教程或笔记的一部分,旨在帮助开发者提升代码理解能力,提高...

    代码整理1111.rar

    "代码整理1111.rar"这个压缩包文件很可能包含了某位开发者或团队整理的一系列关于代码规范的资源,可能是示例代码、文档或者教程。尽管我们无法看到具体的文件内容,但我们可以基于这个主题,详细阐述代码规范的重要...

    代码规范整理

    这份代码规范整理不仅包含了许多针对PHP开发的细节规范,还指出了编写高质量、易于协作的代码需要注意的方方面面。遵循这些规范,开发者能够编写出更加清晰、一致的代码,从而提高开发效率和项目质量。对于想要快速...

    CSP一二题代码整理(2018年-2022年)

    这个压缩包文件“CSP一二题代码整理(2018年-2022年)”显然是一个集合,包含了2018年至2022年间CSP比赛一、二类问题的解题代码。通过这些代码,我们可以深入学习CSP考试中常见问题的解决策略和编程技巧。 首先,...

    免费的VB6代码格式整理工具

    总之,IndenterVB6作为一款免费的VB6代码格式整理工具,是提升VB6编程效率和代码质量的好帮手。通过自动化整理代码,开发者可以更专注于逻辑实现,而非琐碎的格式调整工作,从而提高生产力,为软件开发带来显著的...

    文件整理基础部分C#代码

    6. **单元测试**:通过编写测试代码来验证功能模块的正确性,确保软件质量。在C#中,常用的单元测试框架有NUnit、xUnit等。 以上就是基于标题和描述所推测的C#基础编程知识要点,以及可能在压缩包中涉及的高级主题...

    高质量C/C++编程指南

    《高质量C/C++编程指南》是一本以作者林锐博士的未出版手稿为基础,整理成的规范化文件,主要用于上海贝尔网络应用事业部的内部培训和规范制定。这本书旨在分享C++/C编程的良好实践,鼓励知识共享,但同时也对版权和...

    学习整理C++高质量编程简介

    ### C++高质量编程知识点概述 #### 一、文件结构与头文件管理 ...以上内容是根据《学习整理C++高质量编程简介》中的部分内容总结的关键知识点。遵循这些准则和最佳实践有助于编写出高效、可维护且易于理解的C++代码。

Global site tag (gtag.js) - Google Analytics