Bor*_*der 24
对于我的例子,我将使用以下类:
class TypeX {}
class TypeY extends TypeX {}
Run Code Online (Sandbox Code Playgroud)
然后我有一个List<TypeX>:
final List<TypeX> xList = ...
Run Code Online (Sandbox Code Playgroud)
您需要做的就是使用方法引用TypeY.class.cast:
final List<TypeY> yList = xList.stream()
.map(TypeY.class::cast)
.collect(toList());
Run Code Online (Sandbox Code Playgroud)
您还filter()可以排除将导致错误的项目:
final List<TypeY> yList = xList.stream()
.filter(TypeY.class::isInstance)
.map(TypeY.class::cast)
.collect(toList());
Run Code Online (Sandbox Code Playgroud)
使用示例:
import static java.util.stream.Collectors.toList;
Run Code Online (Sandbox Code Playgroud)
使用以下map方法完成Java项目:
List<TypeY> res = listTypeX
.stream()
.map((x) -> (TypeY)x)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8878 次 |
| 最近记录: |