cost 59 ms
使用 KClass 作为模板的参数

我使用以下链接来解决 Java 中类型擦除引起的限制。 kotlin 在虚拟 function 中实现泛型我希望以下 class 接口如下: 随后,它可以这样使用它: JsonParser.parse<Type>(string: String) 通过扩展功能。 但我不知道如何使用外部依 ...

2022-08-06 14:03:50 0 8
为什么 Kotlin 中的 reified 关键字,是不是标记 function 内联就足够了?

在 Kotlin 中,考虑到 'reified' 关键字只能用于内联函数的泛型类型参数,为什么还有 reified 关键字呢? 为什么 Kotlin 编译器(至少在将来)不能自动将内联函数的所有泛型类型参数视为具体化? 我看到人们在看到这个“具体化”的词时会感到恐慌,并要求我不要让代码变得复杂。 ...

2022-01-19 06:16:13 3 102
Kotlin - 推断两个通用参数之一的类型

我正在尝试创建一个具有两种泛型类型的 function:一种是具体化的,另一种是从其使用的上下文中派生的(因为它是一个扩展函数): 这个想法是调用 function 只是提到具体类型,例如: 其中“a”是类型为 Either<Throwable,String> 的 object 但是编译 ...

2021-12-14 18:10:30 2 270
为什么在使用 'reified' 类型时使用 'inline'

我读过的所有关于类型具体化的教程都说我们在使用“具体化”时需要使用“内联”,但没有一个解释为什么。 假设我有一个 function: 据我了解,使用“具体化”可以防止类型擦除。 那么为什么我们不能在普通的非内联 function 中使用它。 使用 inlined 将使编译器在调用站点复制上述 fu ...

2021-12-14 16:19:33 1 18
我如何通过通用类型 Kotlin 的接收器

我试图弄清楚如何将具有 Generic 类型的接收器传递给另一个函数,以尝试在该其他函数中实现必要的功能。 但是,我不断收到类型不匹配错误。 我尝试过的:尝试将第二个函数的泛型转换为相应的类型,并尝试具体化相应的泛型 T 。 在这一点上,我正在为这个问题挠头。 任何帮助,将不胜感激 错误:需要类型 ...

2021-10-29 02:00:28 1 19
为什么不能访问具体类型参数的伴侣 object?

在下面,由于T被具体化,我想通过访问它的同伴 object 来“几乎就像是一个普通类一样”使用它。 但失败了 因此,似乎丢失了大量信息。 无论有没有reified ,我都会遇到同样的错误。 我希望一个reified的类型参数能比 Java 的更全面的通用实现。 我在 C++ 模板方面拥有丰富的经验 ...

2021-04-29 16:57:20 1 133
Jackson convertValue() 不适用于 Kotlin 中的具体类型参数

我希望这会返回一个Money对象列表,但它返回的是LinkedHashMap ,我猜这是通用的后备类型。 似乎具体化的类型参数没有被传播,即使它应该传播。 这是一个独立的示例(依赖项:assertj、junit、jackson-databind、kotlin-1.4.32): ...

2021-04-29 10:39:57 0 18
从非实体化一个调用实体化 function

我有一个第三方服务,它公开了一个具体的扩展 function。 我想将此服务包装成一个接口-实现对,以便于测试和封装。 问题是我不能在我的应用程序中使用这个 function,因为编译器告诉我: 结构如下: 在这种情况下,调用thirdPartyService.execute()会导致我上面提到的 ...

2021-04-25 07:10:17 1 52
检查 reified class 是 Parcelable 或 Serializable

我已经定义了一个内联方法,它提供了一种反序列化片段参数的方法。 而且我需要检查请求的Arg类型以选择反序列化方法。 如何检查 Arg 是 Parcelable 还是 Serializable? ...

2021-04-12 19:38:55 2 48
如何使用 class 创建阵列?

假设我有一个 其中Row是与本讨论无关的R的一些包装器。 现在假设我想添加一个 这失败了,因为我不能使用“R”作为具体类型参数。 请改用 class。 好吧,让我们试试这个... 首先,让我们跟踪R class... 怎么办? 如何将newRows列表传递给addRows function? 是的 ...

2021-02-16 18:57:00 1 32
Kotlin扩展功能错误的字节码生成

下面的代码片段由于以下原因而中断了编译:后端(JVM)内部错误:生成的字节码错误:没有字节码 但是,如果我停止内联并对其进行了修正,它将按预期工作。 重要说明:仅当将内联扩展发布到aar时,才会发生此问题,而本地使用完全没有问题。 只是对为什么会发生感到好奇,在此先感谢。 ...

2020-11-24 14:23:50 0 63
Kotlinx 序列化:如何绕过 reified typeargs 进行反序列化?

实际上,主要问题仍然是 Kotlin 中的类没有具体化的类型参数。 但这就是为什么在这种特定情况下这困扰我的原因: 假设您有一个包装类Wrapper ,它接受字符串content和 class* type并且可以通过调用函数getObj()输出通过按需将content解析为 JSON 检索到的类t ...

2020-10-01 12:36:52 1 690
你能帮我解释一下这个功能是如何工作的吗? 它使用 Inline、reified、valueOf() 和 enumValues

我真的可以用你的帮助来解释这个功能。 我有一个包含 2 个字符串值、一个国家/地区名称和一个货币的国家/地区枚举。 练习是使用 2 个字符串输入,检查枚举是否具有国家/地区,然后比较它们的货币,相应地返回 true 或 false。 我设法用 2 个 for 循环和 2 个 ifs 来做到这一点,但 ...

2020-09-25 11:47:20 1 40

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM