Je me suis heurté à un problème étrange avec Vert.x futures l'autre jour qui ne casse pas le code mais me dérange encore.Vert.x java Liste <Futures> paramétrisation
avenir sans paramètre entraîne l'avertissement suivant:
Future est un type brut. Les références à type générique avenir devrait être paramétrés
Ajoutez le paramètre, le problème est résolu:
Future<YourClassName> future = ...
Lorsque vous traitez avec une liste des contrats à terme, vous pouvez également paramétrer très bien:
List<Future<YourClassName>> future = ...
Mais CompositeFuture.all()
ne semble pas traiter une liste paramétrée et vous force à supprimer le paramètre.
Existe-t-il un moyen de faire fonctionner la liste paramétrée des contrats à terme avec CompositeFuture
ou devons-nous ignorer cet avertissement? Il ne casse rien mais serait toujours agréable de trouver une solution pour se débarrasser de cet avertissement.
Pouvez-vous jeter votre liste à un un paramétrées lors du passage à la méthode entièrement : 'CompositeFuture.all ((Liste) future)'? Cela vous donnera probablement encore un avertissement lors du lancement, mais au moins en dehors de l'appel de méthode, votre liste contiendra des Futures qui sont paramétrés. En dehors de cela, je ne peux penser à entrer en contact avec les développeurs vert.x et leur demander s'ils envisageraient de changer la signature de la méthode de tous pour accepter la liste > –
@ 911DidBush vous ne pouvez pas le faire de cette façon (résultats dans Impossible de passer de l'erreur 'List> à la liste ') et même si cela fonctionnait, vous déplaceriez simplement le problème d'un endroit à un autre. –
Rauno
Vous avez raison. J'aurais dû vérifier avant si cela fonctionnait. Au lieu de lancer, vous pouvez cependant utiliser le constructeur de copie pour le convertir 'CompositeFuture.all (new ArrayList (future))'. Vous avez bien sûr raison de dire que cela ne vous donne pas grand-chose, mais au moins vous pouvez garder la liste entièrement paramétrée en dehors de l'appel .all et conserver une certaine sécurité de type. Peut-être que quelqu'un d'autre a une autre idée, mais à moins que vert.x change la signature de cette méthode, vous devrez probablement avoir le type + avertissement brut à un moment donné dans votre code. –