2017-10-15 65 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")