Usar Optional.ofNullable( obj ).map( x -> x.id ).equals( Optional.ofNullable( longNull ) );
Pra galerinha da gamb, vi um (monte de) código com comparação Long == Long, o que é errado.
No caso, a pessoa queria validar se o objeto é nulo, se o atributo é nulo e então comparar com um outro valor, que também poderia ser nulo. Por fim, fizeram a comparação de obj.getId() == idObjParam
, o que é muito zuero. Devem ter medo de que obj.getId().equals(idObjParam)
dê um null pointer exception. Compreensível, mas não tem jeito. Temos que usar o .equals()
de qualquer forma pois é uma comparação entre objetos!
O exemplo desse snippet é para mostrar como fazer isso usando um único Optional.
No caso, o equals() ali não é do próprio tipo do objeto, mas é de Optional. Sendo assim, o atributo de comparação com o equals() foi também transformado em Optional para os resultados serem mais corretos.