Here you can find the source of serializeAndDeserialize(T object)
@SuppressWarnings("unchecked") public static <T extends Serializable> T serializeAndDeserialize(T object) throws Exception
//package com.java2s; /*//from w w w . j a v a 2 s. co m * Copyright 2015-2017 the original author or authors. * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v2.0 which * accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v20.html */ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class Main { @SuppressWarnings("unchecked") public static <T extends Serializable> T serializeAndDeserialize(T object) throws Exception { byte[] bytes = serialize(object); return (T) deserialize(bytes); } private static byte[] serialize(Object object) throws Exception { try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream)) { objectOutputStream.writeObject(object); objectOutputStream.flush(); return byteArrayOutputStream.toByteArray(); } } private static Object deserialize(byte[] bytes) throws Exception { try (ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes))) { return in.readObject(); } } }