java - 有没有办法在现有的继承树中插入自定义类?

标签 java android

我正在开发一个 Android 应用程序,该应用程序当前有两个 Activity A 和 B,它们有一些共同的代码、它们的选项菜单和一些其他代码。为了减少复制和粘贴,我创建了一个名为 BaseActivity 的类,它使用 扩展 Activity,然后让 A 和 B 扩展 BaseActivity。至少那是我想做的,但我遇到了问题。虽然 A 现在很好地扩展了 BaseActivity,但我不知道如何让 B 扩展 BaseActivity,因为它不仅仅是一个 Activity,它还是一个 MapActivity。所以它的继承树看起来像这样:

MapActivity继承树:

java.lang.Object
   android.content.Context
       android.content.ContextWrapper
           android.view.ContextThemeWrapper
               android.app.Activity
                   com.google.android.maps.MapActivity

但是为了让它继承我的代码,我需要使它看起来像这样:

java.lang.Object
   android.content.Context
       android.content.ContextWrapper
           android.view.ContextThemeWrapper
               android.app.Activity
                  mypackage.BaseActivity
                     com.google.android.maps.MapActivity

有什么方法可以将我的自定义类插入继承树中吗?

最佳答案

不,你不能。很难准确地说出最好的方法是什么,但我至少会尝试使用组合而不是继承。您可以实现一个单独的非 Activity 对象并使用 A 和 B 中的其中一个吗?

关于java - 有没有办法在现有的继承树中插入自定义类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194511/

相关文章:

java - 尝试更改 Java 类的一部分

java - 如何改善应用程序的 ActivityManager 加载时间?

android - Android 中的泰米尔语字体

android - dexguard 库无法加密类

java - https 和 http 之间的 session 没有得到维护

java - OffsetDateTime 在 GET 方法中产生 "No injection source found for a parameter of type public javax.ws.rs.core.response"

Java,MySQL - 线程异常 "main"java.sql.SQLException : Operation not allowed after ResultSet closed

java - 移动圆圈时的滞后问题

android - 是否可以通过 OBEX 在未配对的设备之间传输文件?

javascript - 无法在存储库容器上找到参数 [] 的方法 google()