Soru & Cevap

Java.lang.NullPointerException: Attempt to ...

20.04.2020 - 03:13

Merhaba arkadaşlar biraz acil bir yardıma ihtiyacım var epey uğraştım ama tam bir çözüme ulaşamadım.

Başlıktada yazdığım üzere:

Java.lang.NullPointerException: Attempt to invoke virtual method 'boolean Java.lang.string.equals(java.lang.object)' om a null object reference..... (Adapter.java:100)

şöyle bir hata alıyorum. Bahsi geçen Adapter. java 100 satırındaki kod ise şu:

if(CoffeeItem.getFavStatus().equals("0"));

Bu kodlar nedir neyin nesidir diye aklınıza gelebilir hemen onu da özetleyim. Yapmış olduğum mobil uygulamaya favori olarak kaydetme özelliği eklemeye çalışıyorum ve şu anlatımı https://youtu.be/T3y3370UE8w buldum ve uyguladım herşey çok güzeldi taki bu hatayı alıncaya kadar.

Favori butonuna tıkladığımda bu hata geliyor. Tahminime göre sebebi de şu videonun 20. dakikasında çağrılan nesneleri tek tek elle girip favStatus: "0" değerini veriyor videoda anlatım yapan kişi.

 

Fakat benim uygulamamda öğeleri sitem üzerinden çekiyorum ve dolayısıyla favStatus: "0" başlangıç değerini ekleyebileceğim bir kısım bulamadım.

 

Başlıktaki hatayı yazarak yabancı kaynaklardan aramalar yaptım en yakın şu başlığı buldum: https://stackoverflow.com/questions/27895108/nullpointerexception-attempt-to-invoke-virtual-method-boolean-java-lang-string

 

fakat oradaki söylenen şekilde değişiklik yaptığımda Evet hata almıyorum ama Favori olarak eklemek için 2 tıklama yapmam gerekiyor. Yani anladığım kadarıyla ilk seferinde datebase o video için 0 değerini ekliyor sonrasındaki tıklamalarda da favoriye ekleme çıkarma işlemini yapıyor.

 

Bu problemi nasıl çözebilirim yardımlarınızı bekliyorum. Şimdiden teşekkür ederim.

485 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user eflasoft
eflasoft
20.04.2020 - 06:09

Merhaba,

Ya CoffeeItem ya da getFavStatus() "null" geliyordur.

if(CoffeeItem != null && CoffeeItem.getFavStatus() != null && CoffeeItem.getFavStatus().equals("0")) //şekilde değiştirirseniz hata almazsınız diye tahmin ediyorum.

 

Aynı işin daha pratik versiyonu:

if("0".equals(CoffeeItem.getFavStatus())) //Şahsen bu şekilde kullanmayı tercih ederim.

 

Kolay gelsin.

Abdulbaki
20.04.2020 - 06:28
Yaklışık 2 haftadır felan bir çok varyant denedim bu problem için sizin yazdığınız if("0".equals(CoffeeItem.getFavStatus())) kısmını ve if(CoffeeItem.getFavStatus() != null && CoffeeItem.getFavStatus().equals("0")) bu şekilde denedim üstte verdiğim linkte de benzer türler yazıyor. Ulaştığım sonuç şu olmuştu ya favori eklerken 2 defa tıklamak gerekiyordu ya da başka kod varyantlarında favoriden kaldırırken 2 defa tıklamam gerekiyordu. Fakat buraya yazdıktan sonra uğraşmaya devam ederken bir şey aklıma geldi if(CoffeeItem.getFavStatus() == null && CoffeeItem.getFavStatus().equals("0")) şu koddaki "&&" kısmı "ve" anlamına geliyor ben dedim ki "ve" yerine "veya" koysam sorun çözülmesi lazım mantıken. if(CoffeeItem.getFavStatus() == null || CoffeeItem.getFavStatus().equals("0")) ve şunu yazdım sorun çözüldü. Yardımınız için teşekkür ederim.