Objects.isNull ve Optional.ofNullable [duplicate] karşılaştırması

Oct 21 2020

Bir testte kullanılan bu kod parçasına sahibim

if (Objects.isNull(o)) {
            return null;
        }
        return String.valueOf(o);   

ve bu kod parçasını değiştirdiğimde

Optional.ofNullable(String.valueOf(o)).orElse(null);

Testlerimde şu iddia hatası var:

Expecting: <"null">
to be equal to: <null>
but was not.

Yanıtlar

2 ernest_k Oct 21 2020 at 17:12

Optional.ofNullable(String.valueOf(o))ne zaman boş bir isteğe bağlı olmayacak o == null, çünkü String.valueOf(null)dönüşleri dize "null".

İsteğe bağlı doğru kullanım şudur:

Optional.ofNullable(o).map(String::valueOf).orElse(null);

Nerede ofNullable(null)neden boş Seçimlik yapacak orElse(null)sonunda çağırılacak.

1 ShekharKhairnar Oct 21 2020 at 17:11

String.valueOf (), boş değilse bir nesnenin toStirng () 'sini döndürür veya "boş" dizeyi döndürür

doğrudan String sınıfından:

public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    }

bu, iddianızda "null" eşittir null, hangisi başarısız olursa test edeceğiniz anlamına gelir.