Ошибка говорит о том, что createColumn
требует сериализатор типа Serializer[Any]
, но вы передаете один из типа Serializer[Integer]
. Это работало бы, только если бы Serializer
были ковариантными в своем параметре типа (т.е. определены как Serializer[+T]
). Но вместо этого Serializer
происходит из Java, где ковариация работает по-другому.
Тип Serializer[Integer]
может быть безопасно приведен к Serializer[_ <: Any]
, поэтому компилятор Scala предполагает, что, возможно, createColumn
должен был быть написан так, чтобы ожидать, что вместо этого будет использоваться менее конкретный тип подстановочного знака.
Если вы не можете изменить createColumn
, то в крайнем случае используйте «1015 * системный аварийный люк системы типов» для приведения к ожидаемому типу:
val is = IntegerSerializer.get.asInstanceOf[Serializer[Any]] // defeats type system
mutator.addInsertion(... is ...)