2017-10-15 66 views
1

例如参数:我要声明的例外:由我怎样才能申报科特林接受(只)枚举

public class UnexpectedEnumException extends RuntimeException { 

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

'枚举:枚举<*>' –

+0

您还可以使通用类基于枚举,以及如果你想:'类UnexpectedEnumException >(枚举:T)' –

回答

4

扩大

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

在Java中,我可以做到这一点关于JB Nizet的评论,本应该是一个答案,generics in Kotlin与Java有些不同。 星号的用法在文档的Star projections部分进行了说明。

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