当前位置: 首页 > 知识库问答 >
问题:

我可以从具体化的T创建KType吗

支劲
2023-03-14

我使用具体化泛型来捕获Kclass<>

inline fun <reified T> register(generator: Generator<T>) {
    register(T::class, generator)
}
inline fun <reified T> register(generator: Generator<T>) {
    register(T::ktype, generator) // Doesn't compile
}

...

register<String?>(myGen) // The nullability of String? is captured

共有1个答案

邬宜然
2023-03-14

不,就目前而言,这是不能做的,在Kotlin问题跟踪器中有一个关于它的问题,目前标记为正在讨论。

但是,您可以使用子类,特别是称为超级类型标记的技术,从具体化的类型参数中获得不仅仅是kclass

 类似资料:
  • 在key Vault中生成公钥以及随后的CSR是否可能?我在文档中没有看到任何关于生成相应公钥的提及?(或者我只是不明白HSM的本质?) 似乎可以在其他地方创建密钥和CSR,并将私钥导入到密钥库HSM中。这显然不如在HSM之外从未存在过的私钥好。

  • 我正在尝试查找相关的JPA文档,但很难找到任何指定是否允许我创建实体的ElementCollection的内容。我知道典型的用法是将@Embedded的@ElementCollection制作成一个@ElementCollection,但由于我遇到了一个Hibernate bug,我需要将我的可嵌入类制作成它自己的实体。 我希望实体的生命周期由父类控制。因此,我希望不要为新实体创建任何DAO/存储

  • 主要内容:一、MySql中的线程创建方式,二、具体源码,三、总结一、MySql中的线程创建方式 为了跨平台主要支持WIN和LINUX,在创建的源码中也可以看这两种创建的方式,在源码中可以清晰的看到区别这两的方式仍然使用的经典的宏判断。其实线程落到这里,基本上就回到了传统的线程处理的整个过程,只是看开发者对其是否进行二次封装和抽象。下面看一下相关的代码分析。 二、具体源码 从上一篇add_connection这个函数开始看: 首先检查一下有没有空闲的线程,如果有

  • 我必须从Postgres表中读取配置并广播它,以使用它过滤主数据流。我正在使用Flink广播状态进行此操作。当我从本地套接字获取配置时,它工作得很好。 用例是在Flink作业中从Postgres读取最新配置,而无需重新启动作业。 我们可以从Postgres表创建Flink数据流吗?如果可能的话,它是否有效,因为它将永远保持JDBC连接的活性?

  • 有什么方法可以为我创建的类使用自动装箱吗?例如,我有的子类。 现在,< code > UnsignedInteger I = new UnsignedInteger(88);工作得非常好,但是有什么方法可以让这个编译:< code > UnsignedInteger i = 88?对我来说不会。提前感谢!

  • 我正在给Kafka写一个msg,然后在另一端消费。在里面做一些过程,并把它写回另一个Kafka主题。 我想知道哪个消息响应是哪个请求... 当前决定捕获来自消费者侧的偏移id然后在响应中写入和读取响应有效载荷并决定相同。 对于这种方法,我们需要阅读每条消息。根据消费者配置条件,我们还有其他方法可以使用吗?