2015-02-06 6 views
6

Hazırda bekletme tarafından yönetilen bir varlık üzerinde uzun bir alanın bulunması, boş değerlerle tehlikeli olabilir. Hazırda bekletme, bir null değerini ilkel haline getirmeye çalıştığında, bir istisna atılır.Sarmalayıcılar olmadan "Hazırda bekletme istisnası Null değeri ilkel tip ayarlayıcısına atanmış" dan kaçının

En iyi çözüm uzun yerine Uzun kullanmak zorundadır, bu nedenle Uzun alana Uzun ad atanabilir.

Ancak, Uzun veya Tamsayı türlerini kullanamadığımız bir proje üzerinde çalışıyorum. Ben nullSafe yöntemi veya benzeri bir şey kullanmak için hazırda bekleme türlerini geçersiz kılmak için bir yol olup olmadığını merak ediyorum.

+1

Tamam, sadece sormak zorundayım ... * Neden * 'Long' ve/veya' Integer' kullanamazsınız? –

cevap

-1

Hep kapsüllü sınıf türlerini kullanmak, ama sen varlık kontrol edebilirsiniz olamazsa niteliklerini önce bunu gibi bir şey inat: Burada açıklandığı gibi nihayet ben hazırda ait UserType uygulayan olsun ettik At

if (entity.getAttribute == null){ 
entity.setAttribute(0); //case of long, int... 
} 
+0

Evet, aslında, ama sorun veritabanında zaten var olan bir veridir, bu yüzden bir seçenek değil (saklanan veriyi güncellemek de bir seçenek değildir) – ilopezluna

+0

Bu, "entity.getAttribute" türünde bir geri dönüş türü değilse derlenmeyecektir.() 'int' veya' long'. Ayrıca, OP'in sahip olduğu problem, hazırda bekleme kütüphanesinin * kendisi * null ile * setter * çağırmaya çalışmasıdır. –

İlgili konular