java - 将 ArrayList 转换为 ArrayList
问题描述
我在 ArrayAdapter 上设置了通用 ArrayList,它也是一个通用类型适配器。现在,我想转换ArrayList<?>
为ArrayList<MyClass>
. 我已经搜索了很多,但无法弄清楚。谢谢您的帮助。
我有这 2 个通用类型适配器和列表。
private ArrayAdapter<?> GeneralAdapter;
private ArrayList<?> GeneralList;
我在 Listview 上设置这个适配器。并将不同类型的类动态添加到列表中。
GeneralList<State>
GeneralList<District>
设置此列表后,我正在使用 notifydatasetchanged() 更新适配器。
我现在只需要根据需要将此 GeneralList 转换为 ArrayList,ArrayList。我一次添加一个项目,并再次将其用于其他课程,我清除了 generalList,然后将其设置为另一个课程。
解决方案
使用动态转换可以实现这一点。
如果你想要来自 GeneralList 的状态列表,那么 ->
List<State> states = filter(State.class, GeneralList);
这是你的过滤功能->
static <T> List<T> filter(Class<T> clazz, List<?> items) {
return items.stream()
.filter(clazz::isInstance)
.map(clazz::cast)
.collect(Collectors.toList());
}
源 -> Java 中的动态转换
推荐阅读
- python - Python根据字符串列表创建变量名
- java - 如何在回收站视图中获取所有项目的总数
- dialogflow-es - 使用 dialogFlow 自定义有效负载在 whatsapp 中发送图像
- linux - 使用 Sed 替换下一行,但保留空格
- javascript - 用户更改后文本区域未更新
- c# - 在集合中获取第一个值然后将其删除的最快方法(大型集合)
- java - 在 Java 中使用冒泡排序对 24 位数组进行排序
- javascript - For循环 - 计数,等待计数器,继续计数
- sql - 如何动态识别数百张表中的重复记录
- c# - JSON.NET 在 Unity 中不重新识别冒号