我是一个泛型新手,我无法找到实现这一目标的最佳方法。如果我做的事情明显错误,请随时指出。
interface Node<T> {
void addOne(Node<T> node);
}
class StringNode implements Node<String> {
List<StringNode> data = new ArrayList<>();
/**
* {@inheritDoc}
*/
@Override
public void addOne(Node<String> node) {
StringNode stringNode = (StringNode) node;
data.add(stringNode);
}
}
我希望找到一种方法来避免在 addOne 的实现中从Node到StringNode的向下转换,方法是让函数本身具有签名public void addOne(StringNode node)。关于如何更改 Node 的定义以实现接口的任何实现的任何想法?
我尝试搜索已经提出的问题,但无法找到匹配的结果。任何指向已经讨论过的问题的指针也将不胜感激。
提前致谢!