Bonjour, je suis on ne peut plus nouveau sur le JDK 5.0 et j'aurai une question de syntaxe sur les generics. Et en particulier sur les generics et l'heritage.

avec le JDK 1.4.2 j'avai cette méthode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public Vector getBeanList(SqlRequest request, Class sqlBeanClassName)
{
...
}
où mon 2eme paramètre était une classe implementant mon interface ISqlBean
et mon vector de retour un vector contenant des intances de classes implementant ISqlBean.

En utilisant les generics, le code est devenu celui-ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public Vector<ISqlBean> getBeanList(SqlRequest request, Class<? extends ISqlBean> sqlBeanClassName)
{
...
}
Ce qui me surprend, est l'utilisation de extends alors que ISqlBean est une interface.

A priori, dans le cas des generics, le mot clé extends désigne juste une notion d'heritage et est indépendant du fait que mon type soit une classe ou une interface. Est ce exacte, ou bien est ce que je fais fausse route ?