Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin反射包并获取所有类_Kotlin_Package_Reflect - Fatal编程技术网

Kotlin反射包并获取所有类

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.

如何反映一个包并将所有类列为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)
    }
}

这可能会有所帮助:@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)
    }
}