java - 类数组,特定类的子类

标签 java android arrays class generics

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

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 中编程,其主要目标是按顺序调用服务。所以我把这个数组作为第一个服务的额外部分,当服务完成时,我调用数组的第一个元素,传递没有第一个元素的数组。

这行得通,但我不能使用列表,因为我不能将额外的列表放到上下文中。

最佳答案

不要使用数组。而是创建一个 List:

List<Class<? extends IntentService>> serviceStack = Arrays.asList(
    GetPlanningData.class, GetTimeTable.class, 
    GetDataToSync.class, GetData.class);

这样你将是类型安全的。

关于java - 类数组,特定类的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32309093/

相关文章:

java - 有没有办法在 Java 中区分不同的泛型实例化运行时?

java - 对具有重复值的 HashMap 进行排序

java - hibernate 迁移:BeanlibException

Android:AsyncTask 中的进度对话框未显示

android - 使用 vuforia qualcomm 播放动画图像

c - 动态分配数组结构的数组

创建一个字符串数组并打印它

java - 在按钮单击事件上从表格布局获取值时出错

android - Volley POST 请求,400 错误

javascript - 使用 javascript 循环 Json 数组得到错误的输出