return getPackets().filter(type::isInstance);
возвращает отфильтрованное представление getPackets()
, которое имеет тип Flowable<Packet>
.
Однако, T
может быть любым подклассом Packet
, а не просто Packet
. И поскольку универсальные шаблоны Java являются инвариантными (например, List<Dog>
не является List<Animal>
), это не совместимо.
Вам нужно будет разыграть Flowable
:
return getPackets().filter(type::isInstance).map(type::cast);