[英]Generic Type as generic type parameter
我想知道是否可以通过避免在类声明中使用第二个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);
}
}
}
除非在此类的任何具体实现中都需要V
,否则都可以按照@PeterLawrey的建议删除类型变量,并在TreeNode<V>
中将其替换为无界通配符:
public abstract class TreeElementAction<T extends TreeNode<?>> {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.