加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

可能是两个类之间的递归Java泛型

发布时间:2020-12-14 19:14:24 所属栏目:Java 来源:网络整理
导读:我正在尝试生成一些类来控制模型 视图 演示者应用程序.我提出了以下定义,但我正在努力避免递归泛型. public abstract class Presenter 我想强制实现两个类之间的相互关系.我的想法是我可以为特定的View实例化一个Presenter,两个类都依赖于抽象基类中定义的有

我正在尝试生成一些类来控制模型 – 视图 – 演示者应用程序.我提出了以下定义,但我正在努力避免递归泛型.

public abstract class Presenter

我想强制实现两个类之间的相互关系.我的想法是我可以为特定的View实例化一个Presenter,两个类都依赖于抽象基类中定义的有用方法,但两者都确切地知道对应的抽象类的子类正在使用中.

我的问题是定义..?部分代码.我无法看到避免递归情况的方法,例如:

public abstract class View

甚至那个定义也不一致,因为View类现在需要两个通用参数……质量混乱.

我基本上想避免使用对抽象类类型的引用而散乱的类,需要在整个具体实现中进行大量的转换,如下所示:

// simpler option

public abstract class Presenter {

  protected View view;    

  public Presenter(View view) {
    this.view = view;
  }
}

public class FooPresenter extends Presenter {

  public FooPresenter(BarView view) {
    super(view);
  }

  public someMethod() {
    ((BarView) getView()).viewSpecificMethod();
  }
}

这些类的每个具体实现都需要不断地从抽象类型转换为它“知道”正在使用的类型.

最佳答案
尝试

public abstract class Presenter

public abstract class View

这会限制演示者将任何视图作为其通用参数和视图以具有任何演示者.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读