Déclaration comme ceci:Pourquoi Wild Cards ne peut-il pas être utilisé dans une déclaration de classe et de méthode générique?
class A<X extends Number & List> { }
est allowed.Whereas telle déclaration n'est pas autorisée.
class A<? extends Number & List> { }
Y a-t-il une explication logique à propos des raisons pour lesquelles Java nous limite à cela?
& Quelle est la différence réelle entre
<T extends Number>
& <? extends Number>?
Avez-vous réellement une classe qui étend 'Number' et implémente' List'? Ou est-ce qu'il étend 'Number' et implémente' Liste '? ou est-ce que X étend 'Number' et implémente' List '? Comment écririez-vous ce dernier sans déclarer le type 'X' quelque part? –
Bon point - 'Number' et' List' ne sont pas vraiment des types que vous attendez de coexister comme ça. –
@LouisWasserman: Même si elles coexistent comme ça, je voulais simplement vous faire remarquer que vous pourriez avoir besoin de la définition générique pour spécifier ce que votre liste contient. De toute façon, il vaut probablement mieux éviter le type brut. –