我有一个类数组,声明如下:
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 中编程,其主要目标是按顺序调用服务。所以我把这个数组作为第一个服务的额外部分,当服务完成时,我调用数组的第一个元素,传递没有第一个元素的数组。
这行得通,但我不能使用列表,因为我不能将额外的列表放到上下文中。
最佳答案
不要使用数组。而是创建一个 List
:
List<Class<? extends IntentService>> serviceStack = Arrays.asList(
GetPlanningData.class, GetTimeTable.class,
GetDataToSync.class, GetData.class);
这样你将是类型安全的。
关于java - 类数组,特定类的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32309093/