problème avec java 8 collectionneurs d'incompatibilité de Type: impossible de convertir de la Liste<Object> Liste<String>

j'ai eu du code de travail avec les anciennes version de java 8 qui j'ai été en utilisant pour obtenir les valeurs uniques de la liste, mais depuis que j'ai mis à niveau vers JDK 66 sa me donne une erreur

Incompatibilité de Type: impossible de convertir de List<Object> à List<String>

List<String> instList = new ArrayList<String>();

while (res.next()) {
    instList.add(res.getString("INST").toString());
}           

List<String> instListF = instList.stream().distinct().collect(Collectors.toList());

res est resultset que je reçois de base de données, pas sûr de ce qui est mauvais-il une idée?

  • si l' .recueillir des(Collectionneurs.toList()) vous donne une Liste<Object>, mais vous voulez qu'il soit List<String>
  • oui, c'était de travailler avec JDK 51 mais après java mise à niveau de son lancement erreurs
  • List<String> instListF = instList.stream().map(e->(String) e).collect(Collectors.toList());
  • Vous avez encore des erreur de compilation si vous supprimez le while boucle complètement?
  • Tagir Valeev je ne peux pas supprimer les boucles while car j'ai pour récupérer des données de jeu de résultats
  • bien sûr, je comprends que la logique de votre programme va changer. On parle d'erreur de compilation. Sera l'erreur de compilation disparaître ou pas? Je ne demande pas de vous engager sur le code modifié de production.
  • Non, il ne va pas après la suppression de la boucle while
  • Est-ce un javac erreur de compilation ou est-ce une erreur de votre IDE? Cela devrait fonctionner.
  • L'erreur est de l'ide eclipse
  • Puis la mise à niveau de votre Eclipse. Les travaux de cette.
  • bien que quelque chose est terriblement mal avec JDK u66
  • pas de version d'Eclipse signale une erreur sur votre exemple. Êtes-vous à la compilation à l'aide de Maven ou tel? Dans ce cas, l'erreur sera probablement soulevée par javac en effet - qui correspond à votre observation que l'erreur a été introduite par la mise à niveau du JDK qui est en conflit avec Tagir de réponse.

InformationsquelleAutor Nomad | 2016-01-25