这个问题与Android相关,因为我的需求存在于这个领域,但这个问题仍然适用于整个Java语言;我将在这里使用一些Android术语,例如
我需要实现一个抽象基类,其中包含必须在整个应用程序中使用的功能,更具体地说,每个
由于基类中的代码对于
我要避免的情况是:
我试图通过使用以下类似的内容来利用泛型:
Activity
、FragmentActivity
、ListActivity
等。我需要实现一个抽象基类,其中包含必须在整个应用程序中使用的功能,更具体地说,每个
Activity
都必须使用此功能,但我希望它由基类自动处理。我的问题是,在应用程序中有许多不同类型的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
但显然,那样做是行不通的;或者我可能只是做错了。那么,有没有办法实现代码重用,避免重复,还是说我只能简单地复制我的代码?
谢谢!