我有一个类的数组,声明如下:
Class<?>[] serviceStack = {GetPlanningData.class, GetTimeTable.class, GetDataToSync.class, GetData.class};
类
GetPlanningData
,GetTimeTable
,GetDataToSync
和GetData
都是IntentService
的子类。我可以声明
IntentService
的子类数组吗?我试过了:Class<? extends IntentService>[] serviceStack;
和
Class<IntentService>[] serviceStack;
但是第一个是“通用数组创建”,正如Android Studio所说的那样,第二个仅允许创建
{IntentService.class, IntentService.class, ...}
,并且不允许子类。编辑:我正在用Android编程,其主要目的是依次调用服务。因此,我将此数组作为第一个Service的额外内容,当该服务完成时,我调用该数组的第一个元素,并传递没有第一个元素的数组。
这行得通,但是我不能使用列表,因为我不能在上下文中添加额外的列表。
最佳答案
不要使用数组。创建一个List
代替:
List<Class<? extends IntentService>> serviceStack = Arrays.asList(
GetPlanningData.class, GetTimeTable.class,
GetDataToSync.class, GetData.class);
这样,您将是类型安全的。