io.github.ltttttttttttt:VirtualReflection-lib-jvm

Virtual reflection of KMP


Keywords
ios, jvm, kmm, kmp, kotlin, kotlin-js, kotlin-jvm, kotlin-native, reflection, virtual-reflection, web
License
Apache-2.0

Documentation

VirtualReflection

Virtual reflection of Kotlin all target

us English | cn 简体中文

ability

  1. Set all classes in certain packages to support virtual reflection

How to use

Step 1.Root dir, build.gradle.kts add:

buildscript {
    repositories {
        maven("https://jitpack.io")//this
        ...
    }
}

allprojects {
    repositories {
        maven("https://jitpack.io")//this
        ...
    }
}

Step 2.Your app dir, build.gradle.kts add:

version =

  • If it is a single platform, add it to build.gradle.kts in the app module directory
plugins {
    ...
    id("com.google.devtools.ksp") version "1.7.10-1.0.6"//this, The left 1.7.10 corresponds to your the Kotlin version,more version: https://github.com/google/ksp/releases
}
//The fourth step of configuring ksp to generate directory reference links: https://github.com/ltttttttttttt/Buff/blob/main/README.md
dependencies {
    ...
    ksp("com.github.ltttttttttttt:VirtualReflection:$version")//this, such as 1.0.5
}
  • If it is multi-platform, add it to build.gradle.kts in the common module directory
plugins {
    ...
    id("com.google.devtools.ksp") version "1.7.10-1.0.6"
}
...
val commonMain by getting {
    //Configure the ksp generation directory
    kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
}
...
dependencies {
    add("kspCommonMainMetadata", "com.github.ltttttttttttt:VirtualReflection:$version")//this, such as 1.0.5
}

Step 3.Use VirtualReflection

Configure packages that require virtual reflection, Your app dir, build.gradle.kts -> android(or kotlin) add:

ksp {
    //Configure multiple paths separated by spaces
    arg("packageListWithVirtualReflection", "com.lt.virtual_reflection.bean/*your package*/")
    //Configure the generated function name, which defaults to newInstance
    //arg("functionNameWithVirtualReflection", xxx)
}

use

KClass.newInstance()
//or
KClass.newInstance(parameters...)