我正在处理双端队列的实现。我有一个Deque类,它有一个内部类节点来表示列表中的项目。我声明中的Deque(本身就是一个公共类)类是这样的:从单独的类访问内部类
public class Node(){
//
}
现在创建基本的对象创建语法新节点是deque的类本身很简单:
Node newNode = newNode(arg1);
不过,我想能够从单独的类中声明新节点,这是一个提供单元测试的DequeTest类。当我尝试使用上面的语法创建一个新节点时,出现一个错误,指出Node类不可见。我正在开发一个预定义的API,所以我不能创建任何新的公共方法。返回新节点的私有createNode()方法是否最优?即使这似乎是行不通的,因为编译器甚至在使用Node关键字时会抛出错误。
内部类不是静态的,所以你需要一个外部类的实例。你尝试过'新的Deque()。new Node();'? – toniedzwiedz 2013-02-18 00:18:53
只需将内部类设为静态:http://stackoverflow.com/questions/1353309/java-static-vs-non-static-inner-class – 2013-02-18 00:21:01
您是否尝试过http://docs.oracle.com/javase/tutorial /java/javaOO/nested.html? – djechlin 2013-02-18 00:36:23