Použít regulární výrazy. To mě nenapadlo.
Jenže, tohle lze použít u řetězce. U něho však nelze zjistit, jestli byl původně String. A to je ten problém.
Díky tomu není možné použít druhý filtr pouze pro nonnull a přidat třetí filtr za mapování na řetězec.
Odfiltrovat String, ještě před mapováním na řetězec, taky nelze. Nelze mu říct, že nesmí být null, ale "může" být String. A i kdyby to šlo, třetí filtr by stejně bral, že to není číslo a vyhodil ven.
Jediné řešení, které mě napadlo, je
.filter(object -> Objects.nonNull(object) && (object instanceof String || object.toString().matches("-?\\d+")))
Jenže, NetBeans hlásí WARNING NullPointer Dereference a musím to dvakrát převést na řetězec, což není vůbec optimální.
Jak by jste to, prosím Vás, nejlépe upravil?
Díky