首页 > 解决方案 > Kotlin 可选的泛型参数

问题描述

这是我要解决的问题,我正在尝试将 void 类型用作泛型类型:

class Parent {
    private abstract class Item<out T>(val data: T)
    // This subclass should contain data
    private class ItemContent(val data: String): Item<String>(data)
    // This subclass doesn't contain data
    private class ItemNoContent: Item<Any?>(null)
}

一些像 ItemNoContent 这样的基类不包含有意义的数据,所以我让 ItemNoContent 扩展了 Item(null)。它有效,但我觉得使用 Any? null 在这里是不合适的。有没有更多的 Kotlin 方法来解决这个可选的通用问题?

标签: kotlin

解决方案


您还可以使用Item<Unit>(Unit)which 表示voidKotlin 中的值。


推荐阅读