我想知道我是否可以通过在类的声明中避免第二个V来提高我的类。不知何故,它看起来很可怕。
public abstract class TreeElementAction<T extends TreeNode<V>, V> {
protected abstract boolean actFor(@Nullable T element);
public void forEachElementInTree(@Nonnull T rootNode) {
requireNonNull(rootNode);
actFor(rootNode);
Collection<T> children = (Collection<T>) rootNode.getChildren();
for (T treeNode : children) {
forEachElementInTree(treeNode);
}
}
}发布于 2016-03-15 21:53:53
除非您在该类的任何具体实现中都需要V,否则您可以像@PeterLawrey建议的那样删除类型变量,并在TreeNode<V>中将其替换为无界定通配符
public abstract class TreeElementAction<T extends TreeNode<?>> {https://stackoverflow.com/questions/36012970
复制相似问题