"संशोधित" एक विशेष प्रकार का कीवर्ड है जो कोटलिन डेवलपर्स को रनटाइम पर किसी वर्ग से संबंधित जानकारी तक पहुंचने में मदद करता है। "संशोधित" केवल इनलाइन . के साथ उपयोग किया जा सकता है कार्य। जब "संशोधित" कीवर्ड का उपयोग किया जाता है, कंपाइलर फ़ंक्शन के बाइटकोड को कोड के प्रत्येक अनुभाग में कॉपी करता है जहां फ़ंक्शन को कॉल किया गया है। इस तरह, सामान्य प्रकार T को तर्क के रूप में प्राप्त होने वाले मान के प्रकार को सौंपा जाएगा।
उदाहरण
इस उदाहरण में, हम देखेंगे कि कैसे "reified" हमारे कोड का पुन:उपयोग करने में सहायक है और इसके पारित तर्क के बावजूद समान प्रकार के संचालन को करने के लिए उसी फ़ंक्शन का उपयोग करता है।
इस उदाहरण के लिए, हमने एक इनलाइन फ़ंक्शन बनाया है और हम एक सामान्य "reified" . पास कर रहे हैं तर्क T और मुख्य () . से कोटलिन के, हम myExample() . को कॉल कर रहे हैं कई बार अलग-अलग तर्कों के साथ।
// Declaring Inline function
inline fun <reified T> myExample(name: T) {
println("\nName of your website -> "+name)
println("\nType of myClass: ${T::class.java}")
}
fun main() {
// calling func() with String
myExample<String>("www.tutorialspoint.com")
// calling func() with Int value
myExample<Int>(100)
// calling func() with Long value
myExample<Long>(1L)
} आउटपुट
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
Name of your website -> www.tutorialspoint.com Type of myClass: class java.lang.String Name of your website -> 100 Type of myClass: class java.lang.Integer Name of your website -> 1 Type of myClass: class java.lang.Long