有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

序列化在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();
    }

}

共 (2) 个答案

  1. # 1 楼答案

    对于其中一个,您不序列化方法,而是序列化具有行为的对象。无论如何,为了能够序列化它,您必须实现Serializable。它的所有成员都必须这样做。如果您看到dochttps://docs.oracle.com/javase/8/docs/api/java/util/Queue.html队列没有实现Serializable,那么请确保实现队列的任何对象都是可序列化的。我不知道t必须是什么,但它也必须实现Serializable,以便序列化ProgramStack类型的对象

  2. # 2 楼答案

    import java.io.Serializable;
    
    public class ProgramStack<T> implements Serializable {
    
    // etc etc
    
    }