need help last condition is not satisfied
package com.codegym.task.task20.task2008;
import java.io.Serializable;
import java.io.IOException;
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.io.*;
/*
How do you serialize Singleton?
*/
public class Solution implements Serializable {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Singleton instance = Singleton.getInstance();
ByteArrayOutputStream byteArrayOutputStream = serializeSingletonInstance(instance);
Singleton singleton = deserializeSingletonInstance(byteArrayOutputStream);
Singleton singleton1 = deserializeSingletonInstance(byteArrayOutputStream);
System.out.println("Check ourInstance: " + singleton.getInstance());
System.out.println("Check ourInstance: " + singleton1.getInstance());
System.out.println("=========================================================");
System.out.println("Check singleton: " + singleton);
System.out.println("Check singleton1: " + singleton1);
}
public static ByteArrayOutputStream serializeSingletonInstance(Singleton instance) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(byteArrayOutputStream);
oos.writeObject(instance);
oos.close();
return byteArrayOutputStream;
}
public static Singleton deserializeSingletonInstance(ByteArrayOutputStream byteArrayOutputStream) throws IOException, ClassNotFoundException {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
ObjectInputStream ois = new ObjectInputStream(byteArrayInputStream);
Singleton singleton = (Singleton) ois.readObject();
ois.close();
return singleton;
}
public static class Singleton implements Serializable {
private static Singleton ourInstance;
public static Singleton getInstance() {
if (ourInstance == null) {
ourInstance = new Singleton();
}
return ourInstance;
}
private Singleton() {
}
private Singleton readResolve()
{
ourInstance = this.getInstance();
return ourInstance;
}
}
}