如何修复java.lang.ClassNotFoundException:kotlin.String

问题描述 投票:3回答:1

我正在尝试使用kotlin.String加载SystemClassLoader

        inputClassName = String::class.qualifiedName.toString()
        val input = ClassLoader.getSystemClassLoader()
            .loadClass(inputClassName) // here I get error

而且我出错了。堆栈跟踪:

Exception in thread "main" java.lang.ClassNotFoundException: kotlin.String
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
    at block.execution.Executor.init(Executor.kt:40)
    at block.AppKt.main(App.kt:50)

我在做什么错?我该如何解决?

java kotlin
1个回答
4
投票

kotlin.String不存在可以加载的类,编译器为mapped to java.lang.StringString::class.java.name将为您提供班级的实际名称。

当然,正如Mikhail Kopylov指出的那样,用已经加载的类的名称来加载类几乎没有意义。也许可以将其加载到特定的ClassLoader中,但是无论如何String肯定会由系统类加载器加载。

© www.soinside.com 2019 - 2024. All rights reserved.