我正在研究双端队列的实现。我有一个Deque类,它有一个内部类Node来表示列表中的项目。我在Deque(本身就是公共类)中声明了这样的类:
public class Node(){
//
}
现在,在Deque类本身中创建具有基本对象创建语法的新节点很简单:
Node newNode = newNode(arg1);
但是,我希望能够从一个单独的类(一个提供单元测试的DequeTest类)声明新节点。当我尝试使用上述语法创建一个新节点时,我收到一条错误,指出Node类不可见。我正在研究预定义的API,因此我无法创建任何新的公共方法。返回新节点的私有createNode()方法是否最佳?即使这似乎不起作用,因为当我甚至使用Node关键字时,编译器会抛出错误。
答案 0 :(得分:0)
不可能。这就是制作内部阶级的重点:它只适用于父母。你为什么想要?如果你在其他地方使用Node
,它首先不应该是一个内部类,因为它不属于任何一个类。您可以考虑创建一个公共Node类,然后从Node
创建单独的内部类子类。
有关API文档,请参阅:here。