我有一个library,它生成了一堆看起来非常相似的Java类。为简便起见,让我们在Kotlin中指定类似的内容:
data class A(val commonParam1: String, val commonParam2: String, val specialParam: Int)
data class B(val commonParam1: String, val commonParam2: String, val specialParam: String)
data class C(val commonParam1: String, val commonParam2: String, val specialParam: Boolean)
data class D(val commonParam1: String, val commonParam2: String, val specialParam: Float)
显然,最好生成一个通用类或接口:
data class G<T>(val commonParam1: String, val commonParam2: String, val specialParam: T)
但是该库不会生成这种代码。我有数十个此类,并且它们在不同的位置生成,所以这是一个[[m×n的情况。不幸的是,这些类没有共享一个通用接口(我可以使用。)因此,按照我的看法,有五个选项可以解决此问题:
MutationInputs
非常相似。我们不直接控制架构的形状。由于每个突变也都有其自己的输入和输出类型,因此即使我随意使用片段,构造这些突变并解释其输出也是一件繁琐的事情,其中包含很多重复的代码,因为即使提取片段的代码也必须重复。 >这在Graphql中通常不成问题,因为它大多数是在JS或TS中完成的,它们都具有鸭子类型。 Kotlin没有鸭子打字法。
我有一个库,该库生成一堆看起来非常相似的Java类。为了简洁起见,让我们在Kotlin中指定类似的内容:数据类A(val commonParam1:String,val ...