Jakub Gwóźdź
11/18/2019, 8:13 AMpublic class GenericsJava {
public static Condition testJooqGenerics(Table<?> table, List<Object> list) {
Field<Object> myColumn = table.field("MY_COLUMN", Object.class);
return <http://myColumn.in|myColumn.in>(list);
}
}
works well in Java, the Kotlin version object GenericsKotlin {
fun testJooqGenerics(table: Table<*>, list: List<Any?>?): Condition {
val myColumn: Field<Any> = table.field("MY_COLUMN", Any::class.java)
return myColumn.`in`(list)
}
}
yelds Overload resolution ambiguity: @Support public abstract fun `in`(vararg p0: Any!): Condition! defined in org.jooq.Field
@Support public abstract fun `in`(p0: (Mutable)Collection<*>!): Condition! defined in org.jooq.Field
Is there any way to work around this API issue?Jakub Gwóźdź
11/18/2019, 8:17 AMAny
, e.g. Field<String>
, it works great)henrik
11/18/2019, 9:12 AMJakub Gwóźdź
11/18/2019, 9:18 AMpackage test.generics
import org.jooq.Condition
import org.jooq.Field
import org.jooq.Table
plus java.util.List and semicolons in java version 🙂Jakub Gwóźdź
11/18/2019, 1:51 PMobject GenericsKotlin {
inline fun <reified T> testJooqGenericsInline(table: Table<*>, list: List<T>): Condition {
val myColumn: Field<T> = table.field("MY_COLUMN", T::class.java)
return myColumn.`in`(list)
}
fun testJooqGenerics(table: Table<*>, list: List<Any>): Condition {
return testJooqGenericsInline(table, list)
}
}