[alibaba/fastjson]解析kotlin bean对象提示default constructor not found.

2025-11-11 263 views
5

1、JavaBeanInfo中调用了TypeUtils.getKoltinConstructorParameters(clazz)方法获取参数名,其中有验证"kotlin.reflect.jvm.internal.KClassImpl",这个是kotlin-reflect库中的方法,而我并没有看到相关说明 2、JavaBeanInfo中调用了TypeUtils.getKoltinConstructor(constructors)方法获取构造方法,之后用来获取构造参数,其中有验证构造方法中第二个参数类型为"kotlin.jvm.internal.DefaultConstructorMarker",而实际上kotlin bean自动生成二个构造方法,一个无参构造方法,一个有2个参数的构造方法,而这个方法的第二个参数类型为“com.android.tools.ir.runtime.InstantReloadException”

能不能在getKoltinConstructor中判断有无参构造方法就直接return啊

回答

6

问题解决了 看到InstantReloadException后,我喝了几口82年的可乐定了定神,然后把as的instant run关掉,一切就都正常了…… 希望下个版本考虑一下这个问题把

6

另外补充一句,解析data class是需要添加kotlin-reflect库的,这个最好在文档中注明一下,或者更换判断方法,不要使用"kotlin.reflect.jvm.internal.KClassImpl"类

2

您好,我在idea 里查看源码时发现,import kotlin.reflect.jvm.internal.KClassImpl; 的时候是报错的,usage of kotlin internal declaration from different module,这个错误是怎么回事啊,pom.xml 里已经加了dependency 了,求教。

<dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-reflect</artifactId>
            <version>${kotlin.version}</version>
            <scope>test</scope>
        </dependency>
2

擦。。。。看花眼了, idea自动加的test。。。。。