我对我们实施的树有疑问,这是一个示例:
public interface TreeNode {
TreeNode getParent();
void setParent(TreeNode parent);
List<TreeNode> getChildren();
void setChildren(List<TreeNode> children);
}
所以,到目前为止这很容易,但是我们有一些树的变体,所以我们有一些像这样的接口:
public interface TreeNodeWithX extends TreeNode {
String getX();
void setX(String x);
}
public interface TreeNodeWithY extends TreeNode {
Boolean getY();
void setY(Boolean y);
}
所以,我需要一个 TreeNodeWithX 对象(是的,它的实现)从它的 getParent 方法返回一个 TreeNodeWithX 对象(对于来自 TreeNode 接口的其他方法也是如此)。
TreeNodeWithY 的行为相同,getParent() 应该返回 TreeNodeWithY。
我尝试了一些泛型方法,例如:
public interface TreeNode<T extends TreeNode> {
T getParent();
void setParent(T parent);
List<T> getChildren();
void setChildren(List<T> children);
}
但是,在方法的实施中,我总是在某些时候遇到麻烦。我的问题是,我的通用接口是否正确,或者我在这里做错了什么?
那种递归泛型引用并没有真正帮助我......