【问题标题】:Is it possible to access internal class with reflection in Kotlin?是否可以在 Kotlin 中通过反射访问内部类?
【发布时间】:2020-06-21 15:13:03
【问题描述】:

是否可以在 Kotlin 中通过反射访问内部类的字段?我需要更改第三方库的内部类的对象。

【问题讨论】:

  • 我不认为你可以引用一个内部类(在 kotlin 中),因为它是内部的,但如果它没有用 @JvmSynthetic 注释,你可以通过以下方式将它从 java 端拉到 kotlin写一个样板来获得反思。 Because in platform(JVM) the internal is public.

标签: kotlin


【解决方案1】:

您可以在您的课程中使用以下名称的 Suppress 注解:“INVISIBLE_MEMBER”、“INVISIBLE_REFERENCE”,如下所示:

@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")

您可以在此处查看示例:https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-debug/src/DebugProbes.kt#L5

在这个类中,会访问一个内部对象 DebugProbesImpl。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2020-11-15
    • 2023-01-21
    • 2023-03-11
    相关资源
    最近更新 更多