Kotlin for Android Developers



Download 1,04 Mb.
Pdf ko'rish
bet110/125
Sana11.08.2021
Hajmi1,04 Mb.
#144654
1   ...   106   107   108   109   110   111   112   113   ...   125
Bog'liq
Kotlin for Android Developers Learn Kotlin the Easy Way While Developing an Android App ( PDFDrive )


2
#ff212121
3
@android:color/black
4
25.1 Basics
For instance, we can create a class which specifies a generic type:
1
class TypedClass(parameter: T) {
2
val value: T = parameter
3
}
This class now can be instantiated using any type, and the parameter will use the type in the
definition. We could do:
1
val t1 = TypedClass("Hello World!")
2
val t2 = TypedClass(25)
But Kotlin is all about simplicity and boilerplate reduction, so if the compiler can infer the type of
the parameter, we don’t even need to specify it:
1
val t1 = TypedClass("Hello World!")
2
val t2 = TypedClass(25)
3
val t3 = TypedClass(null)
As the third object is receiving a null reference, the type still needs to be specified because it can’t
be inferred.
We can go beyond and, as in Java, reduce the types that can be used in a generic class by setting
it in the definition. For instance, if we want to restrict previous class to non-nullable types, we just
need to do:
120


25 Generics
121
1
class TypedClass(parameter: T) {
2
val value: T = parameter
3
}
If you compile previous code, you will see that
t3
now throws an error. Nullable types are not
allowed anymore. But restrictions can be obviously more strict. What if we want only classes that
extend
Context
? Easy:
1
class TypedClass(parameter: T) {
2
val value: T = parameter
3
}
4
5
val t1 = TypedClass(activity)
6
val t2 = TypedClass(context)
7
val t3 = TypedClass(service)
Now every class which extends
Context
can be used as the type of our class. The rest of types are
not allowed.
Of course, types are also allowed in functions. We can construct generic functions quite easily:
1
fun  typedFunction(item: T): List {
2
...
3
}

Download 1,04 Mb.

Do'stlaringiz bilan baham:
1   ...   106   107   108   109   110   111   112   113   ...   125




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