序列化在Java8中序列化Java函数
我正在尝试创建一个类来模拟程序堆栈。是否可以使这个类serializable
?我希望能够将其用作Akka
消息。谢谢
public class ProgramStack<T>{
public final Queue<UnaryOperator<T>> programStack;
private T context;
ProgramStack(Queue<UnaryOperator<T>> programStack, T context) {
this.programStack = programStack;
this.context = context;
}
public void next() {
UnaryOperator function = programStack.poll();
function.apply(context);
}
public boolean hasNext() {
return !programStack.isEmpty();
}
}
# 1 楼答案
对于其中一个,您不序列化方法,而是序列化具有行为的对象。无论如何,为了能够序列化它,您必须实现Serializable。它的所有成员都必须这样做。如果您看到dochttps://docs.oracle.com/javase/8/docs/api/java/util/Queue.html队列没有实现Serializable,那么请确保实现队列的任何对象都是可序列化的。我不知道t必须是什么,但它也必须实现Serializable,以便序列化ProgramStack类型的对象
# 2 楼答案