我有一个类的数组,声明如下:

Class<?>[] serviceStack = {GetPlanningData.class, GetTimeTable.class, GetDataToSync.class, GetData.class};


GetPlanningDataGetTimeTableGetDataToSyncGetData都是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);


这样,您将是类型安全的。

09-10 09:17
查看更多