-1

我正在研究双端队列的实现。我有一个 Deque 类,它有一个内部类 Node 来表示列表中的项目。我在 Deque 中声明该类(本身是一个公共类),如下所示:

public class Node(){
//
}

现在,在 Deque 类本身中使用基本对象创建语法创建新节点很简单:

Node newNode = newNode(arg1);

但是,我希望能够从一个单独的类(提供单元测试的 DequeTest 类)声明新节点。当我尝试使用上述语法创建一个新节点时,我收到一条错误消息,指出节点类不可见。我正在开发一个预定义的 API,所以我无法创建任何新的公共方法。返回一个新节点的私有 createNode() 方法会是最优的吗?即使这样似乎也行不通,因为当我使用 Node 关键字时编译器会抛出错误。

4

1 回答 1

0

不可能。这就是创建内部类的全部意义:它只适用于父类。你为什么想要?如果您在Node其他地方使用它,它首先不应该是内部类,因为它不属于任何一个类。您可能会考虑创建一个公共 Node 类,然后从Node.
请参阅:此处获取 API 文档。

于 2013-02-18T00:21:03.200 回答