Questions marquées «java8»

Java 8 fait référence à la dernière version de la plate-forme Java.

10
Pourquoi utiliser Facultatif dans Java 8+ au lieu des contrôles de pointeur null traditionnels?
Nous avons récemment migré vers Java 8. Maintenant, je vois des applications inondées d’ Optionalobjets. Avant Java 8 (Style 1) Employee employee = employeeServive.getEmployee(); if(employee!=null){ System.out.println(employee.getId()); } Après Java 8 (Style 2) Optional<Employee> employeeOptional = Optional.ofNullable(employeeService.getEmployee()); if(employeeOptional.isPresent()){ Employee employee = employeeOptional.get(); System.out.println(employee.getId()); } Je ne vois aucune valeur ajoutée Optional<Employee> …
110 java  java8 

5
Pourquoi des méthodes par défaut et statiques ont-elles été ajoutées aux interfaces dans Java 8 alors que nous avions déjà des classes abstraites?
En Java 8, les interfaces peuvent contenir des méthodes implémentées, des méthodes statiques et les méthodes dites "par défaut" (que les classes d'implémentation n'ont pas besoin de remplacer). À mon avis (probablement naïf), il n’était pas nécessaire de violer des interfaces comme celle-ci. Les interfaces ont toujours été un contrat …



3
L'utilisation de la syntaxe de référence de méthode à la place de la syntaxe lambda dans Java 8 présente-t-elle un avantage en termes de performances?
Les références aux méthodes ignorent-elles les frais généraux du wrapper lambda? Pourraient-ils dans le futur? Selon le tutoriel Java sur les références de méthode : Parfois ... une expression lambda ne fait qu'appeler une méthode existante. Dans ces cas, il est souvent plus clair de faire référence à la méthode …

6
Solution de contournement pour les exceptions vérifiées par Java
J'apprécie beaucoup les nouvelles fonctionnalités de Java 8 concernant les interfaces de méthode lambdas et par défaut. Pourtant, je me lasse toujours des exceptions vérifiées. Par exemple, si je veux juste lister tous les champs visibles d'un objet, j'aimerais simplement écrire ceci: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); Cependant, comme la …


3
Est-ce un anti-modèle d'utiliser peek () pour modifier un élément de flux?
Supposons que j'ai un flux de choses et que je veuille les "enrichir" à mi-parcours, je peux utiliser peek()ceci, par exemple: streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Supposons que la mutation des objets à ce stade du code constitue un comportement correct. Par exemple, la thingMutatorméthode peut définir le champ "lastProcessed" à l'heure actuelle. Cependant, …

1
Inférence de type dans Java 8
L'introduction de la nouvelle notation lambda (voir par exemple cet article ) dans Java 8 va-t-elle nécessiter une sorte d'inférence de type? Si tel est le cas, quel sera l'impact du nouveau système de types sur le langage Java dans son ensemble?




3
Est-il sensé de retourner des Streams partout où nous retournerions normalement des Collections?
Tout en développant mon API qui n'est liée à aucun code hérité, je me retrouve souvent à écrire des méthodes qui sont purement et simplement terminées par le pipeline Streams en collectant les résultats. Comme celui-ci: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Maintenant, la plupart des …

1
Passer une fonction Scala à une méthode Java 8
Le code Scala suivant fonctionne et peut être transmis à une méthode Java qui attend une fonction. Existe-t-il une façon plus propre de procéder? Voici ma première passe: val plusOne = new java.util.function.Function[Int,Int] { override def apply(t:Int):Int = t + 1 override def andThen[V](after:function.Function[_ >: Int, _ <: V]): function.Function[Int, …

1
Collection.stream (). Filter (). ForEach () est-il inefficace par rapport à un standard pour chaque boucle?
IntelliJ IDEA m'a recommandé de remplacer la boucle for-each suivante par un appel Java 8 "forEach": for (Object o : objects) { if (o instanceof SomeObject) { doSomething(); } } L'appel recommandé aimerait ceci: objects.stream().filter(o -> o instanceof SomeObject).forEach(o -> doSomething()); À moins que je ne comprenne mal comment fonctionne …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.