gpt4 book ai didi

kotlin - 在 Kotlin 的泛型中扩展类

转载 作者:行者123 更新时间:2023-12-04 02:03:57 26 4
gpt4 key购买 nike

我正在尝试使用如下简单的构造函数来实现此枚举:

enum class WithGraphicKind(val innerClass: Class<*>) {
CONTACT(Contact::class.java), SALE(Sale::class.java);
}

同时 ContactSale类实现通用接口(interface) WithGraphics ,我想将构造函数键入为 innerClass: Class<WithGraphics> ,但是那不起作用。我也试过Class<* : WithGraphics>和其他类似的,但没有任何效果。我在这里的官方文档中也找不到任何提示:https://kotlinlang.org/docs/reference/generics.html

最佳答案

您需要声明站点差异 Kotlin Generics: Declaration-site variance

如果您告诉编译器您将只使用 WithGraphics,则编译器允许 WithGraphics 的任何子类型

enum class WithGraphicKind(val innerClass: Class<out WithGraphics>) {
CONTACT(Contact::class.java), SALE(Sale::class.java);
}

关于kotlin - 在 Kotlin 的泛型中扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44175820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com