gpt4 book ai didi

java - 使用 java 8 从列表中获取子类的第一个实例

转载 作者:搜寻专家 更新时间:2023-11-01 01:39:37 24 4
gpt4 key购买 nike

我有一个类的两个子类。现在我有一个可以包含任一子类的列表。

现在我需要遍历列表并获取第一次出现的子类 B。

我已经使用了下面的方法并寻找 Java 8/stream/lambda 方法来做到这一点。

SeniorEmployee sEmp = null;    
for(Employee emp: empList){
if(emp instanceof SeniorEmployee)
sEmp = emp;
break;
}

最佳答案

怎么样:

SeniorEmployee sEmp = emp.stream()
.filter(SeniorEmployee.class::isInstance)
.findFirst()
.map(SeniorEmployee.class::cast)
.orElse(null);

您可以在 orElse 部分输入一些其他默认值。此解决方案使用 findFirst获取与 Predicate

匹配的第一个元素

还要注意orElse(null)是为了让代码等同于题中的代码。最好给出 null 以外的值,因为那样会破坏 Optional

的全部目的

关于java - 使用 java 8 从列表中获取子类的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55246845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com