Effective Java



Download 2,19 Mb.
Pdf ko'rish
bet223/341
Sana11.07.2022
Hajmi2,19 Mb.
#776765
1   ...   219   220   221   222   223   224   225   226   ...   341
Bog'liq
Effective Java



CHAPTER 8
METHODS
250
This method throws an 
IllegalArgumentException
if the given collection is
empty. We mentioned in Item 30 that a better alternative would be to return
Optional
. Here’s how the method looks when it is modified to do so:
// Returns maximum value in collection as an Optional
public static >
Optional
max(Collection c) {
if (c.isEmpty())
return 
Optional.empty()
;
E result = null;
for (E e : c)
if (result == null || e.compareTo(result) > 0)
result = Objects.requireNonNull(e);
return 
Optional.of(result)
;

As you can see, it is straightforward to return an optional. All you have to do
is to create the optional with the appropriate static factory. In this program, we use
two: 
Optional.empty()
returns an empty optional, and 
Optional.of(value)
returns an optional containing the given non-null value. It is a programming error
to pass 
null
to 
Optional.of(value)
. If you do this, the method responds by
throwing a 
NullPointerException
. The 
Optional.ofNullable(value)
method
accepts a possibly null value and returns an empty optional if 
null
is passed in.
Never return a null value from an 
Optional
-returning method:
it defeats the
entire purpose of the facility.
Many terminal operations on streams return optionals. If we rewrite the 
max
method to use a stream, 
Stream
’s 
max
operation does the work of generating an
optional for us (though we do have to pass in an explicit comparator):

Download 2,19 Mb.

Do'stlaringiz bilan baham:
1   ...   219   220   221   222   223   224   225   226   ...   341




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish