0

我有一系列自定义对象,这些对象填充了一系列最终填充列表视图的自定义 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。

我的问题是:在需要处理任意数量的特定对象类型的同时,如何开发一种通用的方法来处理这个过程?

4

1 回答 1

0

一种解决方案是只保留一个对象的 ArrayList,并在分配时进行转换。

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

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

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

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

于 2013-02-02T13:31:06.507 回答