É possível transmitir um fluxo no Java 8?

É possível transmitir um fluxo no Java 8? Digamos que eu tenha uma lista de objetos, posso fazer algo assim para filtrar todos os objetos adicionais:

Stream.of(objects).filter(c -> c instanceof Client)

Após isso, porém, se eu quiser fazer algo com os clientes, precisarei converter cada um deles:

Stream.of(objects).filter(c -> c instanceof Client)
    .map(c -> ((Client) c).getID()).forEach(System.out::println);

Isso parece um pouco feio. É possível converter um fluxo inteiro para um tipo diferente? Como elencoStream<Object> para umStream<Client>?

Por favor, ignore o fato de que fazer coisas como essa provavelmente significaria um design ruim. Como fazemos coisas assim na minha aula de ciências da computação, estava analisando os novos recursos do java 8 e fiquei curioso para saber se isso era possível.

questionAnswers(4)

yourAnswerToTheQuestion