74-bob: To'plamlarni tanlash


-bo'lim: Ixtiyoriy bo'sh bo'lsa, standart


Download 342.92 Kb.
Pdf ko'rish
bet6/6
Sana24.12.2022
Hajmi342.92 Kb.
#1063446
1   2   3   4   5   6
Bog'liq
dasturlash maruza orginali (2)

75.9-bo'lim: Ixtiyoriy bo'sh bo'lsa, standart 
qiymatni qaytaring 
Faqat Optional.get() dan foydalanmang, chunki bu NoSuchElementExceptionni keltirib 
chiqarishi mumkin. Optional.orElse(T) va 
Optional.orElseGet(Supplier) usullari, agar shunday bo'lsa, standart 
qiymatni berish usulini ta'minlaydi. 
Ixtiyoriy boʻsh. 
OrElse va orElseGet o'rtasidagi muhim farq shundaki, ikkinchisi faqat ixtiyoriy bo'lganda 
baholanadi. 
bo'sh, oldingisiga berilgan argument esa Ixtiyoriy bo'sh bo'lmasa ham baholanadi. The 
orElse 
shuning uchun faqat doimiylar uchun ishlatilishi kerak va hech qachon har qanday hisob-
kitoblarga asoslangan qiymatni ta'minlash uchun ishlatilmasligi kerak.
77.14-bo'lim: Agar qiymat bo'lmasa, istisno qiling 
O'z ichiga olgan qiymatni olish yoki o'rnatilmagan bo'lsa, istisno qilish uchun ixtiyoriyning 
orElseThrow() usulidan foydalaning. 
Bu get() ni chaqirishga o'xshaydi, bundan tashqari u ixtiyoriy istisno turlariga ruxsat 
beradi. Usul yetkazib beruvchini oladi 
tashlash uchun istisnoni qaytarish kerak. 
Birinchi misolda usul shunchaki o'z ichiga olgan qiymatni qaytaradi

Ikkinchi misolda, qiymat o'rnatilmaganligi sababli usul istisno qiladi: 
Xabar bilan istisno qilish kerak bo'lsa, lambda sintaksisidan ham foydalanishingiz mumkin: 


optional.orElseThrow(() -> new IllegalArgumentException("Illegal")); 
77.15-bo'lim: Yetkazib beruvchidan foydalanib
birlamchi qiymatni dangasalik bilan taqdim eting 
Oddiy orElse usuli Ob'ektni oladi, shuning uchun nima uchun Yetkazib beruvchini taqdim 
etish imkoniyati borligi haqida savol tug'ilishi mumkin. 
bu erda (orElseGet usuli). 
O'ylab ko'ring: 
String value = "something"; return Optional.ofNullable(value) .orElse(getValueThatIsHardToCalculate()); 
// returns "something" 
U hali ham getValueThatIsHardToCalculate() ni chaqiradi, garchi uning natijasi ishlatilmasa 
ham, ixtiyoriy bo'sh emas. 
Ushbu jazoning oldini olish uchun siz etkazib beruvchiga: 
String value = "something"; return Optional.ofNullable(value) .orElseGet(() -> getValueThatIsHardToCalculate()); // returns 
"something" 
Shu tarzda getValueThatIsHardToCalculate() faqat ixtiyoriy bo'sh bo'lsa chaqiriladi. 
77.17-bo'lim: Filtr 
filter() faqat sizning predikatingizga mos keladigan qiymatni xohlashingizni bildirish uchun 
ishlatiladi. 
Agar (!somePredicate(x)) { x = null; }. 
Kod misollari:

Download 342.92 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling