Функция Котлина с генетическим типом T

#android #kotlin #generic-type-parameters

#Android #котлин #параметры универсального типа

Вопрос:

Во время разработки проекта я столкнулся с этим странным синтаксисом функции

 fun lt;T: Anygt; boo() { do something}  

Я знаю, что T указывает на универсальный тип, а Any является корневым классом всех классов в Kotlin и : подразумевает наследование классов или реализацию интерфейса, но что такое T: Any?

Комментарии:

1. — Есть? это супертип Любого. Так что fun lt;T: Любой?gt; boo() { сделай что-нибудь }lt;T: Любой?gt; можно сократить до fun lt;Tgt; boo() { сделай что-нибудь }lt;Tgt; .

Ответ №1:

T : SomeType задает верхнюю границу универсального типа. T должно было бы быть SomeType или быть каким-то подвидом SomeType .

В этом случае T : Any устанавливает верхнюю границу равным Any . Хотя это может показаться бессмысленным, это означает, что T это не может быть аннулировано.