🔍 Kotlin Reflection: āĻŽāĻ—āϜ-āĻŦাāύ্āϧāĻŦ āĻŦ্āϝাāĻ–্āϝা! 🧠✨

 

🔍 Kotlin Reflection: āĻŽāĻ—āϜ-āĻŦাāύ্āϧāĻŦ āĻŦ্āϝাāĻ–্āϝা! 🧠✨

āϤুāĻŽি āĻ•ি āĻ•āĻ–āύো āĻ­েāĻŦেāĻ›ো?
👉 āĻāĻ•āϟা āĻ•্āϞাāϏেāϰ āϏāĻŦ āĻĢাংāĻļāύ āĻāĻŦং āĻĒ্āϰোāĻĒাāϰ্āϟি āĻĒ্āϰোāĻ—্āϰাāĻŽ āϰাāύāϟাāχāĻŽে āĻŦেāϰ āĻ•āϰāϤে āĻĒাāϰāϞে āĻ•েāĻŽāύ āĻšāϤো?
👉 āĻ•োāύো āĻ…āĻŦāϜেāĻ•্āϟেāϰ āϟাāχāĻĒ āύা āϜেāύেāĻ“ āϏেāϟাāϰ āĻĢাংāĻļāύ āĻ•āϞ āĻ•āϰāϤে āĻĒাāϰāϞে āĻ•েāĻŽāύ āĻšāϤো?
👉 āĻĒ্āϰোāĻ—্āϰাāĻŽ āύিāϜেāχ āύিāϜেāϰ āĻ•োāĻĄ āϏāĻŽ্āĻĒāϰ্āĻ•ে āϜাāύāϤে āĻĒাāϰāϞে āĻ•েāĻŽāύ āĻšāϤো?

🤔 āĻāχ āϏāĻŦ āĻ•িāĻ›ুāϰ āωāϤ্āϤāϰ āĻšāϞো Reflection!
āφāϜ āφāĻŽāϰা Kotlin Reflection āϏāĻŽ্āĻĒāϰ্āĻ•ে āĻŽāĻ—āϜ-āĻŦাāύ্āϧāĻŦ, āĻāĻ•āĻĻāĻŽ āϏāĻšāϜ āĻ­াāώা⧟ āĻļিāĻ–āĻŦো! 🚀


📌 Reflection āĻ•ী? (āĻāĻ•āĻĻāĻŽ āϏāĻšāϜ āĻ­াāώা⧟) 🔍

Reflection āĻšāϞো āĻāĻ•āϟা āĻĒ্āϰোāĻ—্āϰাāĻŽ āϝāĻ–āύ āϰাāύāϟাāχāĻŽে āύিāϜেāχ āύিāϜেāϰ āĻ•্āϞাāϏ, āĻ…āĻŦāϜেāĻ•্āϟ, āĻĢাংāĻļāύ āĻŦা āĻĒ্āϰোāĻĒাāϰ্āϟিāĻ—ুāϞো āϏāĻŽ্āĻĒāϰ্āĻ•ে āϜাāύāϤে āĻĒাāϰে āĻāĻŦং āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰāϤে āĻĒাāϰে! đŸ¤¯

āϤুāϞāύা: āĻŽāύে āĻ•āϰো, āϤুāĻŽি āĻāĻ•āϟা āϜাāĻĻুāϰ āĻ†ā§Ÿāύা (Reflection) āϧāϰāϞে, āφāϰ āϏেāϟা āϤোāĻŽাāϰ āϏāĻŽ্āĻĒāϰ্āĻ•ে āϏāĻŦāĻ•িāĻ›ু āĻŦāϞে āĻĻিāϞো! 😲
🎭 āϤুāĻŽি āύিāϜেāϰ āύাāĻŽ, āϚেāĻšাāϰা, āĻ—া⧟েāϰ āϰং, āϞāĻŽ্āĻŦা-āĻ–াāϟো āϏāĻŦ āϜাāύāϤে āĻĒাāϰāĻ›ো!
🎭 āφāϰ āĻŽāϜাāϰ āĻŦিāώ⧟, āϤুāĻŽি āĻ†ā§Ÿāύাāϰ āĻ­েāϤāϰেāϰ āύিāϜেāϰ āϚেāĻšাāϰা āĻĒāϰিāĻŦāϰ্āϤāύāĻ“ āĻ•āϰāϤে āĻĒাāϰāĻ›ো! 😲

āĻāĻ•āχāĻ­াāĻŦে, Kotlin Reflection āĻĒ্āϰোāĻ—্āϰাāĻŽāĻ•ে āύিāϜেāϰ āĻ•্āϞাāϏ, āĻĢাংāĻļāύ, āĻĒ্āϰোāĻĒাāϰ্āϟি āϏāĻŽ্āĻĒāϰ্āĻ•ে āϜাāύāϤে āĻāĻŦং āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰāϤে āĻĻে⧟!


🛠 Reflection āĻ•ীāĻ­াāĻŦে āĻ•াāϜ āĻ•āϰে? (Step-by-Step) 🚀

🔍 Step 1: āĻāĻ•āϟা āĻ•্āϞাāϏ āϏāĻŽ্āĻĒāϰ্āĻ•ে āϜাāύা 🏛️

👉 ::class āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে āφāĻŽāϰা āĻāĻ•āϟা āĻ…āĻŦāϜেāĻ•্āϟেāϰ āĻ•্āϞাāϏ āϜাāύāϤে āĻĒাāϰি!

class Person(val name: String, val age: Int)

fun main() {
    val person = Person("Araf", 25)

    // Reflection āĻĻি⧟ে āĻ•্āϞাāϏ āϏāĻŽ্āĻĒāϰ্āĻ•ে āϜাāύা
    val personClass = person::class

    println("Class Name: ${personClass.simpleName}") // 🔹 Output: Class Name: Person
}

🔍 Step 2: āĻāĻ•āϟা āĻ•্āϞাāϏেāϰ āϏāĻŦ āĻĒ্āϰোāĻĒাāϰ্āϟি āĻāĻŦং āĻŽেāĻĨāĻĄ āĻ–ুঁāϜে āĻŦেāϰ āĻ•āϰা 🧐

👉 memberProperties āĻāĻŦং memberFunctions āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϞে, āĻāĻ•āϟা āĻ•্āϞাāϏেāϰ āϏāĻŦ āĻĒ্āϰোāĻĒাāϰ্āϟি āĻāĻŦং āĻĢাংāĻļāύ āϞিāϏ্āϟ āĻŦেāϰ āĻ•āϰা āϝা⧟!

import kotlin.reflect.full.*

class Car(val brand: String, val model: String) {
    fun drive() {
        println("Driving...")
    }
}

fun main() {
    val carClass = Car::class

    // 🔹 āϏāĻŦ āĻĒ্āϰোāĻĒাāϰ্āϟি āĻŦেāϰ āĻ•āϰা
    println("Properties: ${carClass.memberProperties.map { it.name }}") 
    // Output: Properties: [brand, model]

    // 🔹 āϏāĻŦ āĻĢাংāĻļāύ āĻŦেāϰ āĻ•āϰা
    println("Functions: ${carClass.memberFunctions.map { it.name }}") 
    // Output: Functions: [drive]
}

āϤুāϞāύা: āĻāϟা āĻ িāĻ• āϝেāύ āĻāĻ•āϟা āĻŦāĻ‡ā§Ÿেāϰ āϏূāϚিāĻĒāϤ্āϰ āĻĻেāĻ–ে āĻŦāϞে āĻĻে⧟া—āĻŦāĻ‡ā§Ÿেāϰ āĻ•োāύ āĻ•োāύ āĻ…āϧ্āϝা⧟ āφāĻ›ে! 📖


🔍 Step 3: āϰাāύāϟাāχāĻŽে āĻĢাংāĻļāύ āĻ•āϞ āĻ•āϰা (Invoke) 🚀

👉 call() āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে, āĻāĻ•āϟা āĻĢাংāĻļāύ āϰাāύāϟাāχāĻŽে āĻ•āϞ āĻ•āϰা āϝা⧟!

import kotlin.reflect.full.*

class Robot {
    fun greet() {
        println("Hello, I am a Robot! 🤖")
    }
}

fun main() {
    val robot = Robot()
    val function = robot::class.memberFunctions.find { it.name == "greet" }

    function?.call(robot) // 🔹 Output: Hello, I am a Robot! 🤖
}

āϤুāϞāύা: āĻŽāύে āĻ•āϰো, āϤুāĻŽি āφāĻ—ে āĻĨেāĻ•ে āύা āϜেāύেāχ āĻāĻ•āϟা āϜাāĻĻুāϰ āĻŦোāϤাāĻŽ āϚেāĻĒে āĻĻিāϞা, āφāϰ āϏেāϟা āĻ•াāϜ āĻ•āϰāϞো! đŸĒ„


🔍 Step 4: āϰাāύāϟাāχāĻŽে āĻĒ্āϰোāĻĒাāϰ্āϟিāϰ āĻŽাāύ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰা 🛠️

👉 call() āĻĻি⧟ে āĻĒ্āϰোāĻĒাāϰ্āϟিāϰ āĻŽাāύ āĻĒ⧜া āĻāĻŦং āϏেāϟ āĻ•āϰা āϝা⧟!

import kotlin.reflect.full.*
import kotlin.reflect.jvm.isAccessible

class Animal(var name: String)

fun main() {
    val animal = Animal("Tiger")

    // 🔹 āĻĒ্āϰোāĻĒাāϰ্āϟি āĻ–ুঁāϜে āĻŦেāϰ āĻ•āϰা
    val nameProperty = animal::class.memberProperties.find { it.name == "name" }

    // 🔹 āϰাāύāϟাāχāĻŽে āĻĒ্āϰোāĻĒাāϰ্āϟিāϰ āĻŽাāύ āĻĻেāĻ–া
    println("Before: ${nameProperty?.call(animal)}") // Output: Before: Tiger

    // 🔹 āϰাāύāϟাāχāĻŽে āĻĒ্āϰোāĻĒাāϰ্āϟিāϰ āĻŽাāύ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰা
    val mutableProperty = animal::class.members.find { it.name == "name" } as? kotlin.reflect.KMutableProperty1<Animal, String>
    mutableProperty?.setter?.call(animal, "Lion")

    println("After: ${nameProperty?.call(animal)}") // Output: After: Lion
}

āϤুāϞāύা: āĻŽāύে āĻ•āϰো, āϤুāĻŽি āĻ•াāϰāĻ“ āύাāĻŽ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰে āĻĻিāϞা, āĻ•িāύ্āϤু āϤাāϰা āĻŦুāĻāϤেāχ āĻĒাāϰāϞ āύা! 🎭


📌 āĻ•েāύ Reflection āĻĻāϰāĻ•াāϰ? (āĻŦ্āϝāĻŦāĻšাāϰ)

1️⃣ āĻĄাāϟা āĻ•্āϞাāϏ āĻĨেāĻ•ে āĻĄাāϟা āϜেāύেāϰেāϟ āĻ•āϰা 📋
👉 JSON āĻŦা XML āĻĢāϰāĻŽ্āϝাāϟে āĻ…āϟোāĻŽেāϟিāĻ• āĻĄাāϟা āĻŽ্āϝাāĻĒিং āĻ•āϰা āϝা⧟!

2️⃣ Dependency Injection (DI) 🔧
👉 āĻĢ্āϰেāĻŽāĻ“ā§Ÿাāϰ্āĻ•āĻ—ুāϞো (āϝেāĻŽāύ Dagger, Koin) āϰাāύāϟাāχāĻŽে āĻ•্āϞাāϏ āϤৈāϰি āĻ•āϰāϤে āĻĒাāϰে!

3️⃣ āϟেāϏ্āϟিং āĻāĻŦং āĻŽāĻ•িং đŸ§Ē
👉 āϟেāϏ্āϟিং-āĻ āϰাāύāϟাāχāĻŽে āĻĒ্āϰাāχāĻ­েāϟ āĻŽেāĻĨāĻĄ āĻ“ āĻĒ্āϰোāĻĒাāϰ্āϟি āĻāĻ•্āϏেāϏ āĻ•āϰা āϝা⧟!

4️⃣ āĻĒ্āϞাāĻ—িāύ āĻāĻŦং āϞাāχāĻŦ্āϰেāϰি āĻĄেāĻ­েāϞāĻĒāĻŽেāύ্āϟ đŸ“Ļ
👉 āϞাāχāĻŦ্āϰেāϰি āĻĄেāĻ­েāϞāĻĒাāϰāϰা āϰাāύāϟাāχāĻŽে āĻ•্āϞাāϏেāϰ āϏ্āϟ্āϰাāĻ•āϚাāϰ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰāϤে āĻĒাāϰে!


❌ Reflection-āĻāϰ āĻ•িāĻ›ু āϏীāĻŽাāĻŦāĻĻ্āϧāϤা! (Limitations of Reflection)

āϰাāύāϟাāχāĻŽ āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻ•āĻŽি⧟ে āĻĻিāϤে āĻĒাāϰে! 🚀
👉 āĻ•াāϰāĻŖ, Reflection āĻ…āύেāĻ• āĻŦেāĻļি āĻĒ্āϰāϏেāϏিং āĻļāĻ•্āϤি āĻ–āϰāϚ āĻ•āϰে!

āĻĒ্āϰাāχāĻ­েāϟ āĻĄাāϟা āĻāĻ•্āϏেāϏ āĻ•āϰāϞে āύিāϰাāĻĒāϤ্āϤা āĻুঁāĻ•ি āĻĨাāĻ•ে! 🔐
👉 āĻ­ুāϞāĻ­াāĻŦে āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϞে āϏিāĻ•িāωāϰিāϟি āĻŦ্āϰেāĻ• āĻšāϤে āĻĒাāϰে!

āĻ…āĻĒ্āϟিāĻŽাāχāϜ āĻ•āϰা āĻ•āĻ িāύ! ⚙️
👉 āĻ•āĻŽ্āĻĒাāχāϞ-āϟাāχāĻŽে āĻāϰ āĻŦ্āϝāĻŦāĻšাāϰ āϏāĻšāϜে āϧāϰা āϝা⧟ āύা!


đŸŽ¯ āϏংāĻ•্āώেāĻĒে: Reflection āĻāĻ• āĻ•āĻĨা⧟ āĻ•ী?

🔹 Reflection āĻšāϞো Kotlin-āĻāϰ āĻāĻŽāύ āĻāĻ•āϟা āĻĢিāϚাāϰ, āϝা āĻĒ্āϰোāĻ—্āϰাāĻŽāĻ•ে āύিāϜে āϏāĻŽ্āĻĒāϰ্āĻ•ে āϜাāύāϤে āĻ“ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰāϤে āĻĻে⧟! 🤖
🔹 āĻāϟা āĻĻি⧟ে āϰাāύāϟাāχāĻŽে āĻ•্āϞাāϏেāϰ āĻŽেāĻĨāĻĄ, āĻĒ্āϰোāĻĒাāϰ্āϟি, āĻāĻŦং āĻ•āύāϏ্āϟ্āϰাāĻ•্āϟāϰ āĻĄাāχāύাāĻŽিāĻ•āĻ­াāĻŦে āĻāĻ•্āϏেāϏ āĻ•āϰা āϝা⧟! 🛠️
🔹 āĻāϟা Dependency Injection, JSON Mapping, āϟেāϏ্āϟিং, āĻāĻŦং āĻĒ্āϞাāĻ—িāύ āĻĄেāĻ­েāϞāĻĒāĻŽেāύ্āϟ-āĻ āĻŦ্āϝāĻŦāĻšৃāϤ āĻšā§Ÿ! 🚀


🤩 āĻļেāώ āĻ•āĻĨা

āĻāĻ–āύ āϤুāĻŽি Kotlin Reflection āϏāĻŽ্āĻĒāϰ্āĻ•ে āϜাāύো! 🎉
👉 āϝāĻĻি āĻĒ্āϰāĻļ্āύ āĻĨাāĻ•ে, āϤাāĻšāϞে āϜিāϜ্āĻžাāϏা āĻ•āϰো! 🚀

Comments

Popular posts from this blog

AI (Artificial Intelligence) āϏāĻšāϜāĻ­াāĻŦে āĻŦোāĻাāϰ āϜāύ্āϝ āĻāĻ•āĻĻāĻŽ āĻŽāϏ্āϤিāώ্āĻ•-āĻŦাāύ্āϧāĻŦ āĻŦ্āϝাāĻ–্āϝা 🧠🤖

🧠 Regex āĻ•ী?

Kotlin-āĻ āĻ­েāϰিāϝ়েāĻŦāϞ āϘোāώāĻŖা āĻ•āϰাāϰ āĻĻুāχ āωāĻĒাāϝ়