DİKKAT!
İddialar açıkça kodunuzu derleme yaparken "iddialarını etkinleştirmek" için belirtmedikçe zamanında kaldırılır. Java İddialar üretim kodu kullanılmak üzere değildir ve özel yöntemlerle sınırlı olmalıdır (bkz Assertion vs İstisna özel yöntemler sadece geliştiriciler tarafından bilinen ve kullanılan bekleniyor beri). Ayrıca assert
atacağım AssertionError uzanır Error
değil Exception
ve normalde çok anormal hata var belirten (kurtulmak zordur "OutOfMemoryError" gibi, değil mi?) Eğer tedavi edebilmek için beklenmiyor.
"İddiaları etkinleştir" bayrağını kaldırın ve bir hata ayıklayıcısını kontrol edin; bu kodun derlenmediğinden (tekrar, "ea" kaldırıldığında) IllegalArgumentException atma çağrısına ... adım atmayacağınızı göreceksiniz
İkinci yapıyı kamuya açık / korunan yöntemler için kullanmak daha iyidir ve bir kod satırında yapılan bir şey istiyorsanız, bildiğim en az bir yol var. Ben şahsen kullanmak Bahar Çerçeve 'nın Assert
argümanlarını ve başarısızlık o atmak 'IllegalArgumentException' kontrol etmek için birkaç yöntem vardır sınıfı. Temel olarak, yaptığınız şey:
Assert.notNull(obj, "object was null");
... Aslında, ikinci örnekte yazdığınız aynı kodu uygulayacak. Gibi birkaç diğer yararlı yöntemler vardır hasText
, hasLength
içeride.
Gerekenden fazla kod yazmaktan hoşlanmıyorum, bu yüzden yazılı satır sayısını 2 (2 satır> 1 satır) azalttığım için mutluyum :-)
obj.hashCode()
yerine basit bir tercih ederim ;-)