désolé pour le titre qui n'est pas très explicite mais je n'ai pas trouvé mieux ,
j'ai pas compris cette déclaration qui se trouve dans la JavaDoc de Sun ??Code:
1
2 public static <M,I> RowFilter<M,I> regexFilter(String regex, int... indices)
Version imprimable
désolé pour le titre qui n'est pas très explicite mais je n'ai pas trouvé mieux ,
j'ai pas compris cette déclaration qui se trouve dans la JavaDoc de Sun ??Code:
1
2 public static <M,I> RowFilter<M,I> regexFilter(String regex, int... indices)
C'est vrai que c'est étonnant, le fait que cette méthode soit statique et que ni M ni I ne peuvent être choisis par les paramètres de la méthode, je ne vois pas comment il les détermine...Citation:
Envoyé par bassim
Salut,
La vérification se fait à la compilation, et c'est le compilateur qui détermine la cohérence de l'ensemble (en se basant sur la référence dans laquelle le retour est affecté).Citation:
Envoyé par ®om
Comme les types paramétrés sont perdu à l'exécution cela ne pose pas de problème ;)
a++
Ah ouais?Citation:
Envoyé par adiGuba
Tu es sûr?
Et moi qui critiquait matlab pour cette stupidité de résultat dépendant de la valeur dans laquelle on l'affecte...
(c'est déjà le cas en java pour les types primitifs, mais sur les generics je ne savais pas)
Le résultat ne dépend pas de la valeur dans laquelle on l'affecte : puisque le typage est perdu à l'exécution, on se retrouve en réalité à appeler la méthode suivante :
Les Generics permettent simplement de s'éviter des casts et de vérifier la cohérence de ces derniers... mais à l'exécution le résultat est identique !Code:public static RowFilter regexFilter(String regex, int... indices)
a++
Attention que ici le résultat ne dépend aucunement de la valeur dans laquelle on l'affecte... D'ailleurs la méthode regexFilter n'a probablement aucune idée de ce que sont les types retours.
Tout n'est qu'une question de déclaration, et de cohérence de ces déclarations.
Ah ben je vois que adiGuba et moi sommes d'accord avec 3 minutes d'avance pour lui ! :mouarf:
je n'ai rien compris à ce que vous dites :oops:
je croyais pas que c'était aussi compliqué que ça ....
mais ça , ça veut dire quoi ??
Code:public static <M,I> RowFilter<M,I>
Il s'agit simplement des Generics, qui permettent d'utiliser la généricité de manière sécurisé (via la vérification de la cohérence lors de la compilation)
Plus d'info : http://lroux.developpez.com/article/...ge_5#Lgenerics
a++
ok merci je vais voir ça