在Java 8中,是否可能将流转换为另一种形式?比如说,如果我有一个对象列表,我可以像这样过滤掉所有额外的对象:
Stream.of(objects).filter(c -> c instanceof Client)
但在此之后,如果我想对客户端执行某些操作,我需要对每个客户端进行转换:
Stream.of(objects).filter(c -> c instanceof Client)
.map(c -> ((Client) c).getID()).forEach(System.out::println);
这看起来有点丑陋。是否可能将整个流转换为不同类型?例如将Stream<Object>
转换为Stream<Client>
?
请忽略这样做可能意味着糟糕设计的事实。我们在我的计算机科学课上做这样的事情,所以我正在研究Java 8的新功能,想知道是否可能。