Я хочу написать такую функцию, где T должен иметь одинаковый тип данных для обеих переменных, но может быть любым, если они одинаковые.
fun <T> doSomething(var1: T, var2: T) {}
Когда я пишу это , он будет работать с любыми двумя переменными, такими как
doSomething(5, listOf<Thread>())
В настоящее время предполагается, что предполагается, что поскольку int и list различны, T теперь считается Any?
Есть ли какие-либо способ сделать эту работу? Коллега использует Swift, и он работает, как и ожидалось, не в состоянии скомпилировать, если какой-либо элемент имеет другой тип.
Я также пытался использовать усовершенствованные функции, но та же проблема. Это вызывает ошибку компиляции, только если я явно добавил класс reified в начале, он просто предполагает, что это не так.
EG
inline fun <reified T> doSomething(var1: T, var2: T) { }
doSomething(1,"2") <-- unwanted compile
doSomething<String>(1,"2") <-- Will not compile
Но я не хочу иметь только функция работает, если человек не забывает добавить явный тип к ней ...