2017-10-15 1 views
1

Par exemple: Je veux déclarer une exception:Comment puis-je déclarer un argument en Kotlin qui accepte (seulement) énumérations

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

En Java je peux le faire en

public class UnexpectedEnumException extends RuntimeException { 

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

'ENUM: Enum <*>' –

+0

Vous pouvez également faire la base de la classe générique ENUM et si vous voulez: classe 'UnexpectedEnumException > (ENUM: T)' –

Répondre

4

Pour développer Sur le commentaire de JB Nizet, qui aurait dû être une réponse, generics in Kotlin sont un peu différentes de Java. L'utilisation de l'étoile est expliquée dans la section Star projections de la documentation.

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