Android - Java:在已知类型之前从JSON初始化ArrayLists



我有一系列自定义对象,这些对象填充一系列最终填充列表视图的自定义 ArrayAdapter。在我的活动/片段中,我使用相同的模式从 Web 服务器获取内容,填充类型化数组列表,将数组列表放入适当的适配器,然后将适配器分配给列表视图。

我想做的是创建一个 pojo,它可以为我需要此模式的所有实例管理此过程。我对逻辑的基础知识没有问题,而是被细节所束缚。

例如,我想做的是这个...

if (x == y) {
    ArrayList<SpecificObject> a = new ArrayList<SpecificObject>();
} else if (x == z) {
    ArrayList<DifferentObject> a = new ArrayList<DifferentObject>();
} else {
    ArrayList<AnotherObject> a = new ArrayList<AnotherObject>();
}

当然,这里的问题是编译器建议"a"未初始化。如果不解决此类问题,从概念的角度来看,我将无法创建可以处理列表管理的单个 pojo。

我的问题是:在需要使用任意数量的特定对象类型时,我如何为此过程开发通用方法?

一种解决方案是只保留一个 ArrayList of Objects,并在分配时强制转换。

 ArrayList<Object> a = new ArrayList<Object>();

然后,当您需要分配它时,您可以:-

if (x = y) {
    assignCall(ArrayList<SpecificObject>) a);
}
...

但请注意,无法在运行时检查强制转换,因此您将收到警告,如果您转换错误的内容,则会收到 ClassCastExceptions 。我通常会注意到这些警告,即可能有更好的方法来构建事物,但这取决于您;-)

最新更新