当前位置: 首页 > 工具软件 > LazyMap > 使用案例 >

java中lazy in_如何在Java中序列化groovys LazyMap(How to serialize groovys LazyMap in Java)

傅茂实
2023-12-01

我现在将所有可能的groovy对象包装到Wrapper类中并在此类中使用kryo,这似乎工作得很好(至少作为原型)。

public class Wrapper implements Serializable {

private static final long serialVersionUID = 889826451319869803L;

private transient Object wrapped;

public Wrapper() {

}

public Wrapper(Object wrapped) {

this.wrapped = wrapped;

}

private void writeObject(java.io.ObjectOutputStream stream) throws IOException {

Kryo kryo = new Kryo();

ByteArrayOutputStream bos = new ByteArrayOutputStream();

Output output = new Output(bos);

kryo.writeObject(output, wrapped);

output.close();

stream.writeObject(bos.toByteArray());

}

private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException {

Kryo kryo = new Kryo();

byte[] bytes = (byte[]) stream.readObject();

ByteArrayInputStream bis = new ByteInputStream(bytes, bytes.length);

Input input = new Input(bis);

wrapped = kryo.readObject(input, LazyMap.class);

input.close();

}

}

I wrap now all the possible groovy objects into a Wrapper class and use kryo inside of this class, this seems to work quite well (at least as a prototype).

public class Wrapper implements Serializable {

private static final long serialVersionUID = 889826451319869803L;

private transient Object wrapped;

public Wrapper() {

}

public Wrapper(Object wrapped) {

this.wrapped = wrapped;

}

private void writeObject(java.io.ObjectOutputStream stream) throws IOException {

Kryo kryo = new Kryo();

ByteArrayOutputStream bos = new ByteArrayOutputStream();

Output output = new Output(bos);

kryo.writeObject(output, wrapped);

output.close();

stream.writeObject(bos.toByteArray());

}

private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException {

Kryo kryo = new Kryo();

byte[] bytes = (byte[]) stream.readObject();

ByteArrayInputStream bis = new ByteInputStream(bytes, bytes.length);

Input input = new Input(bis);

wrapped = kryo.readObject(input, LazyMap.class);

input.close();

}

}

 类似资料: