Cela ne compile pas, aucune suggestion appréciée.
...
List<Object> list = getList();
return (List<Customer>) list;
Le compilateur dit : ne peut pas lancer List<Object>
à List<Customer>
Cela ne compile pas, aucune suggestion appréciée.
...
List<Object> list = getList();
return (List<Customer>) list;
Le compilateur dit : ne peut pas lancer List<Object>
à List<Customer>
Avec Java 8 Streams :
Parfois, la coulée à force brute est très bien :
List<MyClass> mythings = (List<MyClass>) (Object) objects
Mais voici une solution plus polyvalente :
List<Object> objects = Arrays.asList("String1", "String2");
List<String> strings = objects.stream()
.map(element->(String) element)
.collect(Collectors.toList());
Il ya une tonne d'avantages, mais l'un est que vous pouvez lancer votre liste plus élégamment si vous ne pouvez pas être sûr de ce qu'il contient :
objects.stream()
.filter(element->element instanceof String)
.map(element->(String)element)
.collect(Collectors.toList());
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.