我有一系列自定义对象,用于填充最终填充列表视图的一系列自定义ArrayAdapter。在我的活动/片段中,我使用相同的模式从Web服务器获取内容,填充类型化的arraylist,将arraylist放入适当的适配器,然后将适配器分配给listview。
我想要做的是创建一个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。
我的问题是:如何在需要使用任意数量的特定对象类型的同时开发此过程的通用方法?
答案 0 :(得分:0)
一种解决方案是保留一个对象的ArrayList,并在分配时进行转换。
ArrayList<Object> a = new ArrayList<Object>();
然后当你需要分配它时,你可以: -
if (x = y) {
assignCall(ArrayList<SpecificObject>) a);
}
...
但请注意,在运行时无法检查强制转换,因此您将收到警告,如果您输错了,则会收到ClassCastExceptions。我通常会注意到这些警告,可能有更好的方法来构建事物,但这取决于你; - )