1

例如

class StackElement {
    String method;
    int state;
}

Stack<StackElement> stack;

我想获得 this 的深层副本stack,其中包含StackElement我自己定义的内容。

  1. Java 是否为此目的提供了合适的 API?

  2. 如果没有,如何以简单通用的方式实现它?

4

2 回答 2

1

最简单的方法是按照以下简单步骤操作:

  1. 做你的StackElement工具Serializable
  2. 将整个堆栈序列化为字节数组;
  3. 反序列化回深拷贝。

缺点是性能不如顶级。

请注意,它Stack被认为是考古文物,早在 Java 1.2 中就已经过时了LinkedList,可以用作堆栈。它被废弃的原因是每个方法都是synchronized,对客户端代码的线程安全增加很少,但会引入性能损失,甚至可能出现死锁。

于 2012-11-01T19:33:38.300 回答
0

我不确定您的情况是否有特殊问题,但您可以在此处查看一些选项。

于 2012-11-01T19:34:04.863 回答