En parcourant du code, je suis tombé sur l'opérateur flèche, que fait-il exactement? Je pensais que Java n'avait pas d'opérateur de flèche.
return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
return Car.SEDAN == ((Car)arg0).getStyle();
});
Détails : Java 6, Apache Commons Collection, IntelliJ 12
Mise à jour / Réponse: Il s'avère qu'IntelliJ 12 prend en charge Java 8, qui prend en charge les lambdas, et «plie» les prédicats et les affiche en tant que lambdas. Voici le code "non plié".
return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
public boolean evaluate(Object arg0) {
return Car.SEDAN == ((Car)arg0).getStyle();
}
});
java
intellij-idea
apache-commons
java-8
apache-commons-collection
Mike Rylander
la source
la source
Réponses:
Cela fait partie de la syntaxe des nouvelles expressions lambda, à introduire dans Java 8. Il y a quelques tutoriels en ligne pour comprendre, voici un lien vers un. Fondamentalement, le
->
sépare les paramètres (côté gauche) de l'implémentation (côté droit).La syntaxe générale d'utilisation des expressions lambda est
(Paramètres) -> {Body} où le '->' sépare les paramètres et le corps de l'expression lambda.
Les paramètres sont entre parenthèses, de la même manière que pour les méthodes et le corps de l'expression lambda est un bloc de code entre accolades.
la source
Celui-ci est également utile lorsque vous souhaitez implémenter une interface fonctionnelle
est équivalent à
la source
Je crois que cette flèche existe à cause de votre IDE. IntelliJ IDEA fait une telle chose avec du code. C'est ce qu'on appelle le pliage de code. Vous pouvez cliquer sur la flèche pour l'agrandir.
la source
C'est une expression lambda.
Cela signifie que, à partir de la listOfCars, arg0 est l'un des éléments de cette liste. Avec cet élément, il va faire, d'où le ->, tout ce qui est à l'intérieur des crochets.
Dans cet exemple, il va renvoyer une liste de voitures qui correspondent à la condition
la source
Nouvel opérateur pour l'expression lambda ajouté dans java 8
L'expression Lambda est le moyen le plus court d'écrire des méthodes.
Il est indirectement utilisé pour implémenter l'interface fonctionnelle
Syntaxe primaire: (paramètres) -> {instructions; }
Il existe quelques règles de base pour l'écriture d'expressions lambda efficaces que vous devriez connaître.
la source