【问题标题】:How do I get the Java primitive void class in Kotlin?如何在 Kotlin 中获取 Java 原始 void 类?
【发布时间】:2020-02-03 10:10:25
【问题描述】:

我正在开发一个使用反射的 Kotlin JVM 库,并且在某个时候,我有一个方法可以检查指定的类是否为 void(不是 Void)。

在Java中,和void.class比较一样简单,但在Kotlin中我却做不到。

谢谢。

【问题讨论】:

  • 你在说什么Java中的“void”类?
  • void.class 实际上是一个东西。与Void.TYPE 相同
  • 那不是 Void.class 吗?
  • @Stultuske void.classVoid.class 都是有效的。打印它们会导致不同的输出。 Void.class 打印 class java.lang.Voidvoid.class 仅打印 voidVoid.TYPE 也打印出void
  • @XtremeBaumer Void.TYPE 工作得很好。我也不知道它存在于java中。谢谢。

标签: java kotlin reflection jvm void


【解决方案1】:

感谢@XtremeBaumer 指出Java 和Kotlin 中可用的Void.TYPE 属性,它们都引用void 类。

【讨论】:

    【解决方案2】:

    要获取KClass 实例,请写此

    Void.TYPE.kotlin
    

    编辑

    fun main() {
        println(Void.TYPE.kotlin == Nothing::class)
        println(Nothing::class.java.name)
        println(Nothing::class.javaPrimitiveType?.name)
        println(Void.TYPE.kotlin.java.name)
        println(Void.TYPE.kotlin.javaPrimitiveType?.name)
    }
    

    打印出来

    true
    java.lang.Void
    void
    void
    void
    

    选择权在你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      相关资源
      最近更新 更多