我有2个类员工和经理,可以扩展员工。 我有Arraylist类型的员工,包含员工和经理。 我想要通用方法,它将创建一个新的ArrayList类型管理器,它将复制第一个列表中的所有管理器。
答案 0 :(得分:5)
步骤如下:
List<Manager>
List<Employee>
Manager
**instanceof**
List<Manager>
List<Manager>
应该很容易在实际代码中翻译这些步骤。
答案 1 :(得分:1)
使用java 8,您可以使用流方法执行Davide Lorenzo MARINO中所述的步骤his answer。
- 创建新列表
- 循环列表
- 对于每个元素,检查该元素是否为使用运算符 instanceof
的管理器- 如果是经理,请将其添加到列表
- 返回列表
使用java 8:
list.stream().filter(Manager.class::isInstance).map(Manager.class::cast).collect(Collectors.toList());
我们首先流式传输原始列表中的项目,过滤掉Manager
s,将Manager
转换为Manager
个实例,然后将结果收集到列表中。