Как я могу объявить аргумент в Kotlin, который принимает (только) перечисления

Например: я хочу объявить исключение:

class UnexpectedEnumException(enum: Enum...) : Exception("Unexpected enum $enum") 

В Java я могу это сделать

 public class UnexpectedEnumException extends RuntimeException { public UnexpectedEnumException(Enum<?> en) { super("Unexpected enum " + en); } 

Чтобы расширить комментарий JB Nizet, который должен был быть ответом, дженерики в Котлине немного отличаются от Java. Использование звезды объясняется в разделе «Проекции звезд » документации.

 class UnexpectedEnumException(enum: Enum<*>) : Exception("Unexpected enum $enum") 
Intereting Posts
Escape $ {something} в строчке Котлина Как я могу завершить свой конструктор? Идентификатор ресурса всегда 0 Spring Framework проглатывает исключение пользовательских преобразователей Неразрешенная ссылка: DaggerTestComponent (Kotlin с кинжалом для теста) android – Модифицировать вызов void с помощью Kotlin RxJava2: onComplete не вызывается с flatMapIterable Как объявить параметр функции для приема функций, которые вы выбрали? Как создать запрос hql с левым соединением, используя поле из расширяющегося объекта Упрощение кода, который является одинаковым удовольствием, за исключением подписи (varargs vs map) RxJava2 таймер и combLatest Android: Как сделать преобразователи типов (для комнаты) универсальными для всех Список объектов в Котлине Как получить сообщение из идентификатора сообщения в smack. Ошибка при создании банки проекта IntelliJ, содержащего смешанный Groovy, Kotlin Что такое многостраничное текстовое разделение текста приложения