我如何在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的评论,本应该是一个答案, Kotlin的泛型与Java有些不同。 文档的“ 星型预测”部分介绍了星型的用法。

 class UnexpectedEnumException(enum: Enum<*>) : Exception("Unexpected enum $enum")