کلاس جنریک
تعریف یک کلاس جنریک بسیار شبیه به تعریف یک تابع جنریک است. کلاس جنریک دارای یک علامت بزرگتر و کوچکتر و یک نوع پارامتر خاص میباشد. برنامه زیر مثالی از یک کلاس جنریک میباشد :
1: class GenericClass<T>(private var someField: T?) 2: { 3: fun getSomeProperty(): T? 4: { 5: return someField 6: } 7: } 8: 9: fun main(args: Array<String>) 10: { 11: val genericDouble = GenericClass(30.50) 12: val genericString = GenericClass("Hello World!") 13: 14: println("Double Value : ${genericDouble.getSomeProperty()}") 15: println("String Value : ${genericString.getSomeProperty()}") 16: }
Double Value : 30.5 String Value : Hello World!
در مثال بالا یک کلاس جنریک (خطوط 7-1) که دارای یک فیلد (خط 1) و یک تابع (خطوط 6-3) است را ایجاد میکنیم. تمام مکانهایی که ورودی T در آنها قرار دارد بعداً توسط انواعی که مد نظر شما است، جایگزین میشوند. وقتی یک نمونه از کلاس جنریک تان ایجاد میکنید، یک نوع هم برای آن در نظر بگیرید (<int>). مانند توابع جنریک میتوانید چندین نوع پارامتر به کلاسهای جنریک اختصاص دهید.
class GenericClass<T1, T2, T3> { private val someField1: T1? = null private val someField2: T2? = null private val someField3: T3? = null }