bcr*_*bcr 0 java generics nested-class
我想创建一个内部类,参数化外部类的类型.
我应该首先说,我意识到可能有更好的方法来实现我想要的结果,我愿意接受那些建议,但我将描述现状:
我有一个类Node<T>和一个内部类声明的尝试如下:
public class Node<T> {
...
class NodeIterator<Node<T>> implements Iterator {
...
}
}
Run Code Online (Sandbox Code Playgroud)
这会在编译期间导致语法错误,我推断这是由于我使用外部类,虽然我不确定这一点.
谢谢!
简单地说:
public class Node<T> {
...
class NodeIterator implements Iterator<Node<T>> {
...
}
}
Run Code Online (Sandbox Code Playgroud)
作为内部类,实例NodeIterator具有对外部Node实例的隐式引用.出于这个原因,该类型T仍然在其体内.
请注意,另一种方法是使NodeIterator static丢失隐式外部引用:
static class NodeIterator<T> implements Iterator<Node<T>> {
...
}
Run Code Online (Sandbox Code Playgroud)
这里T必须重新声明,并且T与外部类声明的不同.
有关详细信息,请参阅有关嵌套类的Java Tutorials文章.