Я пишу две функции расширения для того же класса:У меня есть два метода расширения Котлин для того же класса, но с различными родовыми подписей и компилятор жалуется
class Something<T:Any> { ... }
Они похожи:
fun Something<Int>.toJson(): String = ...
fun Something<Double>.toJson(): String = ...
И приводит к ошибке компилятора:
Kotlin: Platform declaration clash: The following declarations have the same JVM signature
Как создать две функции расширения с различной сигнатурой generics? или это невозможно?
Примечание:этот вопрос намеренно написан и ответил автором (Self-Answered Questions), так что ответы на часто задаваемые вопросы Котлин присутствуют в SO. Он возник в Kotlin slack #general канале.
это также работает для параметрических аргументов лямбда – Antek