为了账号安全,请及时绑定邮箱和手机立即绑定

Java中接口返回List<自身类型>时, 实现类如何实现?

Java中接口返回List<自身类型>时, 实现类如何实现?

偶然的你 2019-03-16 19:25:27
场景:这个是接口public interface TreeNode<T> {    public List<T> levelOrder();         public List<TreeNode<T>> getChildNodes();         public T getVal();         public void setVal(T val); }这个是实现类public class BinaryTreeNode<T> implements TreeNode<T> {     @Override     public List<BinaryTreeNode<T>> getChildNodes(){        return null;     } }这里会报错,如果把返回类型改成TreeNode<T>[], 则实现方法那里可以为BinaryTreeNode<T>[].提问:如果我想要接口返回List/Map等集合类, 而不是数组, 应该怎么做?
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

public List<? extends TreeNode<T>> getChildNodes();


查看完整回答
反对 回复 2019-03-16
?
森林海

TA贡献2011条经验 获得超2个赞

以下仅供参考。

public interface TreeNode<T, S extends TreeNode<T, S>> {  // ...
  List<S> getChildNodes();  // ...}

public class BinaryTreeNode<T> implements TreeNode<T, BinaryTreeNode<T>> {  // ...

  @Override
  public List<BinaryTreeNode<T>> getChildNodes() {    // ...
  }  // ...}


查看完整回答
反对 回复 2019-03-16
  • 2 回答
  • 0 关注
  • 531 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信