Kotlin反射包并获取所有类
如何反映一个包并将所有类列为KClass 这是我的解决办法Kotlin反射包并获取所有类,kotlin,package,reflect,Kotlin,Package,Reflect,如何反映一个包并将所有类列为KClass 这是我的解决办法 package com.example import org.reflections.Reflections import org.reflections.scanners.ResourcesScanner import org.reflections.scanners.SubTypesScanner import org.reflections.util.ClasspathHelper import org.reflections.
package com.example
import org.reflections.Reflections
import org.reflections.scanners.ResourcesScanner
import org.reflections.scanners.SubTypesScanner
import org.reflections.util.ClasspathHelper
import org.reflections.util.ConfigurationBuilder
import org.reflections.util.FilterBuilder
class Test1
fun op1() = ""
fun main(args: Array<String>) {
val packagePath = "com.example"
val reflections =
Reflections(
ConfigurationBuilder()
.filterInputsBy(FilterBuilder().includePackage(packagePath))
.setUrls(ClasspathHelper.forPackage(packagePath))
.setScanners(SubTypesScanner(false))
)
val typeList = reflections.getSubTypesOf(Object::class.java)
typeList.forEach { c ->
println(c.kotlin)
}
}
这可能会有所帮助:@Tenfour04实际上并不适用,因为它只适用于java类。我希望类描述为KClass对象。您可以将Java类转换为KClass。你说得对。谢谢。
package com.example
import org.reflections.Reflections
import org.reflections.scanners.ResourcesScanner
import org.reflections.scanners.SubTypesScanner
import org.reflections.util.ClasspathHelper
import org.reflections.util.ConfigurationBuilder
import org.reflections.util.FilterBuilder
class Test1
fun op1() = ""
fun main(args: Array<String>) {
val packagePath = "com.example"
val reflections =
Reflections(
ConfigurationBuilder()
.filterInputsBy(FilterBuilder().includePackage(packagePath))
.setUrls(ClasspathHelper.forPackage(packagePath))
.setScanners(SubTypesScanner(false))
)
val typeList = reflections.getSubTypesOf(Object::class.java)
typeList.forEach { c ->
println(c.kotlin)
}
}