Java Language Renforcer les paramètres de type borné


Exemple

Les paramètres de type lié vous permettent de définir des restrictions sur les arguments de type générique:

class SomeClass {

}

class Demo<T extends SomeClass> {

}

Mais un paramètre de type ne peut être lié qu'à un seul type de classe.

Un type d'interface peut être lié à un type qui a déjà une liaison. Ceci est réalisé en utilisant le symbole & :

interface SomeInterface {

}

class GenericClass<T extends SomeClass & SomeInterface> {

}

Cela renforce la liaison, nécessitant potentiellement des arguments de type à dériver de plusieurs types.

Plusieurs types d'interface peuvent être liés à un paramètre de type:

class Demo<T extends SomeClass & FirstInterface & SecondInterface> {

}

Mais devrait être utilisé avec prudence. Les liaisons d'interface multiples sont généralement un signe d' odeur de code , ce qui suggère qu'un nouveau type doit être créé, qui agit comme un adaptateur pour les autres types:

interface NewInterface extends FirstInterface, SecondInterface {

}

class Demo<T extends SomeClass & NewInterface> {

}