SORU
8 NİSAN 2010, PERŞEMBE


Nasıl benim dize null değerine eşit olup olmadığını kontrol etmek için?

Eğer benim dize anlamlı bir değeri VARSA, SADECE bazı eylemleri gerçekleştirmek istiyorum. Yani, bu çalıştım.

if (!myString.equals("")) {
doSomething
}

ve bu

if (!myString.equals(null)) {
doSomething
}

ve bu

if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}

ve bu

if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}

ve bu

if ( myString.length()>0) {
doSomething
}

Ve her durumda benim programı 11* *benim dize BOŞ OLDUĞU gerçeğine rağmen. 12* *eşittir. Bu yanlış olan ne?

EKLEDİ:

Sorunun nedenini buldum. Değişken bir dize olarak ilan edildi ve bunun sonucu olarak, null bu değişken için 14 ** dönüştürülmüş atandı! Yani, if (!myString.equals("null")) çalışır.

CEVAP
8 NİSAN 2010, PERŞEMBE


if (myString != null && !myString.isEmpty()) {
  // doSomething
}

Daha fazla yorum olarak, equals Sözleşmede bu dönem bilmeniz gerekir:

Object.equals(Object):

Boş olmayan herhangi bir referans değeri için x, x.equals(null) 21**.

null ile karşılaştırmak yolu x == null x != null kullanmaktır.

Ayrıca, x.field x.method() x == null NullPointerException atar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • Excel Video Tutorials

    Excel Video

    6 Aralık 2012