74-bob: To'plamlarni tanlash


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

67-bob: Majburiy emas 
Majburiy emas konteyner ob'ekti bo'lib, unda null bo'lmagan qiymat bo'lishi mumkin yoki 
bo'lmasligi mumkin. Agar qiymat mavjud bo'lsa, isPresent() qiladi 
true qiymatini qaytaring va get() qiymatini qaytaradi. 
O'z ichiga olgan qiymatning mavjudligiga bog'liq bo'lgan qo'shimcha usullar taqdim etiladi
masalan, orElse(), qaysi 


qiymat mavjud bo'lmasa, standart qiymatni qaytaradi va agar qiymat mavjud bo'lsa, kod 
blokini bajaradigan ifPresent(). 
75.8-bo'lim: Xarita 
Null bo'lishi mumkin bo'lgan qiymatlar bilan aniq null tekshiruvlarini o'tkazmasdan ishlash 
uchun ixtiyoriyning map() usulidan foydalaning: 
(E'tibor bering, map() va filter() operatsiyalari Stream hamkasblaridan farqli ravishda 
darhol baholanadi. 
faqat terminal operatsiyasi bo'yicha baholanadi.) 
Sintaksis:
public Optional map(Function mapper) 
Optional.map() xaritalash funktsiyasi null qiymatini qaytarganda bo'sh ixtiyoriyni 
qaytarganligi sababli, siz bir nechta zanjirlarni bog'lashingiz mumkin. 
map() operatsiyalari null-xavfsiz havolani bekor qilish shakli sifatida. Bu null-xavfsiz zanjir 
deb ham ataladi. 
Quyidagi misolni ko'rib chiqing: 
String value = foo.getBar().getBaz().toString(); 
getBar, getBaz va toString dan har qanday potentsial NullPointerExceptionni tashlashi 
mumkin. 
Bu yerda ixtiyoriy yordamida toString() dan qiymat olishning muqobil usuli 
String value = Optional.ofNullable(foo) .map(Foo::getBar) .map(Bar::getBaz) 
.map(Baz::toString) .orElse(""); 
Agar xaritalash funksiyalaridan biri null bo'lsa, bu bo'sh qatorni qaytaradi. 
Quyida yana bir misol, lekin biroz boshqacha. Agar xaritalash funksiyalaridan hech biri 
ishlamasagina qiymatni chop etadi 
null qaytarildi

Optional.ofNullable(foo) .map(Foo::getBar) 
.map(Bar::getBaz.map(Baz::toString) .ifPresent(System.out::println); 



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