Kotlin generi c ограничение классов, например, ключевое слово C# "class" - PullRequest
1 голос
/ 26 апреля 2020

Как я уже упоминал в заголовке, как я могу написать обобщенный c класс и ограничить тип конкретно (ограниченным)? Я знаю, что в Kotlin есть ключевое слово reified , но доступно только при встроенной функции .. Есть ли способ написать как C# в Kotlin с вместо класса Any?

C# Пример кода

public class Something<TType> where TType : class
{
    TType Add(TType ttype){
        return ttype;
    }
}

Kotlin Пример кода (при попытке написать эквивалентный код C# )

open class Something<TType: class> 
{
   fun Add(ttype: TType): TType {
     return ttype
   }
}

1 Ответ

0 голосов
/ 27 апреля 2020

Соответствующая документация уже упоминалась в комментариях. Купите, чтобы добавить соответствующий фрагмент кода:

class Something<T: SomeClass> {
    fun add(type: T): T { // type boundary on T doesn't have to be repeated after class declaration
        return type
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...