【问题标题】:How to get KClass<List<String>> type from List<String> in kotlin如何从 Kotlin 中的 List<String> 获取 KClass<List<String>> 类型
【发布时间】:2023-01-10 20:27:40
【问题描述】:

我对 Kotlin 诗人 PropertySpec 对象有疑问。因为我无法向 PropertySpec 生成器提供 List&lt;String&gt;

请帮忙。

PropertySpec.builder("services", List<String>::class.asTypeName()).build()

【问题讨论】:

  • 你好 Jamshed,欢迎来到 SO!请提供问题的minimum reproducible example。当你在做的时候,确保你熟悉with Type Erasure
  • 我现在不在我的电脑旁边,所以我无法提供一个工作示例,但KClass 无法存储有关泛型的信息。您需要 KType,您可以使用 typeOf() 创建它。

标签: kotlin kotlin-reflect kotlinpoet


【解决方案1】:

要添加泛型类型信息,您需要使用 parameterizedBy 例如

val stringList = ClassName("kotlin.collections", "List").parameterizedBy(String::class.asTypeName())

【讨论】:

  • 有用。感谢@AmrDeveloper
  • 不客气兄弟 :D
猜你喜欢
  • 2020-10-21
  • 2012-06-08
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
相关资源
最近更新 更多