Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

Sorunuz mu var? Belki de çoktan soruldu..

1
"b".equals(a) ve a.equals("b") farkı

Açık 1 Cevaplar 18 Gösterim Java
Merhabalar,

Ben if else-if ile bir değeri kontrol ettiriyorum, else kısmında diğer kontrol ettirdiğim değerlerden farklı veya null değer dönebiliyor.

a.equals("b") olarak yaptığımda null gelirse patlıyor.

"b".equals(a) olarak yapınca burda patlamıyor sonuc alabiliyorum.

Acaba bu ikisi arasında fark nedir yardımcı olabilir misiniz?

1 cevap

1
Sorununu tam anlamak için null nedir, java'da nasıl yönetilir bilgin olmalı biraz. Ama güzel bir soru.

String str = null; // kodunu yazdığın zaman elinde bir pointer var adı str ve hiçbiryeri göstermiyor. Hiçbiryeri göstermeyen bir pointer üzerinde equals metodunu çalıştırmak istiyorsun. O zaman null pointer alırsın.

Eğer str değerini dışarıdan alıyorsan null gelme ihtimali hep vardır. Her zaman NullPointerException alma ihtimalin var.

str.equals("kenan") // str null olduğu için patlar.

"kenan" demek hafızada bir string oluşturur. Direk elle oluşturduğun için boş gelme ihtimali yok. "kenan".equals(str) dediğin zaman nokta "." işaretinin sol tarafında hiç null değer olmayacağı için NullPointerException alma ihtimalini her zaman sıfırlamış olursun. str değeri null olması olmaması bir sorun ifade etmez.
(4.3k puan)