这个问题与 Android 有关,因为我的需求存在于那个领域,但这个问题仍然适用于整个 Java;我将在这里使用一些 Android 术语,例如Activity
, FragmentActivity
,ListActivity
等...
我需要实现一个包含必须在整个应用程序中使用的功能的抽象基类,更具体地说,每个人都Activity
必须使用此功能,但我希望它由基类自动处理。我的问题是我在应用程序中有许多不同类型的活动,例如Activity
,FragmentActivity
和ListActivity
,所有这些都扩展Activity
(当然减去Activity
)。
由于基类中的代码对于每个实现都是完全相同的Activity
,有没有办法避免代码重复并需要为每种类型创建一个基类Activity
?
我试图避免的事情:
public abstract class BaseActivity extends Activity
{
public void onCreate(Bundle savedBundle)
{
// code goes here, will be the exact same for all these base classes
}
}
public abstract class BaseFragmentActivity extends FragmentActivity
{
public void onCreate(Bundle savedBundle)
{
// code goes here, will be the exact same for all these base classes
}
}
public abstract class BaseListActivity extends ListActivity
{
public void onCreate(Bundle savedBundle)
{
// code goes here, will be the exact same for all these base classes
}
}
public class MyMainActivity extends BaseActivity
{
}
public class MyUserList extends BaseListActivity
{
}
public class SomeActivityThatNeedsToBeAFragment extends BaseFragmentActivity
{
}
我试图通过使用类似下面的东西来利用泛型
public abstract class BaseActivity<T extends Activity> extends T
但显然那是行不通的;或者我只是做错了。那么有什么方法可以实现这种代码重用并避免重复,还是我只是简单地重复我的代码?
谢谢!