通用约束作为类型列表?还是编译时鸭子输入?

时间:2019-03-12 14:54:50

标签: kotlin

下面的最小示例很好地说明了我的问题:

name

这两个类data class OneThing(val x: Int, val y: Int, val foo: String) data class ASimilarThing(val x: Int, val y: Int, val bar: String) fun <THING> process(thing: THING) { println(thing.x) println(thing.y) } fun main() { val oneThing = OneThing(1, 2, "hi") val aSimilarThing = ASimilarThing(3, 4, "ho") process(oneThing) process(aSimilarThing) } OneThing来自一个库,因此无法更改它们。但是从语义上讲,它们是非常相似的,我想避免两次实现我的逻辑,所以我希望将其包含在通用ASimilarThing函数中。

但是以上内容无法编译。In C++ it is possible.

有没有办法使process工作?理想情况下,我正在寻找类似

的东西
process

但是这种语法不存在。

还有其他想法吗? :)

0 个答案:

没有答案