【问题标题】:How can use multiple inheritance in android activity?如何在android活动中使用多重继承?
【发布时间】:2019-10-16 10:25:54
【问题描述】:

我想使用 RxLifeCycle,因为 compose(bindToLifeCycle),但我已经使用 DaggerAppCompatActivity。

bindToLifeCycle 需要 RxAppCompactActivity。但是,Java 不支持多重继承。我该如何解决?

基础活动

public class BaseActivity extends DaggerAppCompatActivity{ }

主活动

public class MainActivity extends BaseActivity { }

我想要

public class BaseActivity extends DaggerAppCompatActivity, RxAppCompactActivity { }

但是这段代码不能用。

【问题讨论】:

    标签: java android inheritance


    【解决方案1】:

    如果您通过在 IDE 中按Ctrl+B 来检查DaggerAppCompatActivity 的实现,您会发现唯一的区别是在super.onCreate() 之前调用AndroidInjection.inject(this)

    因此您可以扩展RxLifecycleActivity 并在super.onCreate() 之前写入AndroidInjection.inject(this),您将获得相同的结果。

    您也可以将RxLifecycleActivity 中的内容复制到您的 BaseActivity 中。你可以两者都做。这真的取决于你。只需将这些基类的实现复制到您自己的类中即可。

    【讨论】:

      【解决方案2】:

      Java 不支持多重继承。 虽然可以在你的类中使用接口并实现多个接口。

      tutorial for interface

      【讨论】:

      • 我知道Java不支持多重继承,但我想在一个Activity中使用RxAppCompatActivity和DaggerAppCompatActivtiy。
      猜你喜欢
      • 2012-04-12
      • 2019-07-28
      • 2020-03-20
      • 2016-07-09
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      相关资源
      最近更新 更多