Как я могу объявить аргумент в 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")