Tijdens het jagen door een code, kwam ik de pijl-operator tegen, wat doet het precies? Ik dacht dat Java geen pijl-operator had.
return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
return Car.SEDAN == ((Car)arg0).getStyle();
});
Details : Java 6, Apache Commons Collection, Intellij 12
Update / Antwoord: Het blijkt dat Intellij 12 Java 8 ondersteunt, die Lambdas ondersteunt, en “vouwen” prediceert en ze als lambdas wordt weergegeven. Hieronder staat de “VN-gevouwen” -code.
return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
public boolean evaluate(Object arg0) {
return Car.SEDAN == ((Car)arg0).getStyle();
}
});
1, Autoriteit 100%
Dat maakt deel uit van de syntaxis van de nieuwe Lambda-uitdrukkingen, om in Java te worden geïntroduceerd 8. Er zijn een paar online tutorials om het hangen ervan te krijgen, hier is een Link naar één. Kortom, de ->
scheidt de parameters (linkerkant) van de implementatie (rechterkant).
De algemene syntaxis voor het gebruik van Lambda Expressions is
(Parameters) -> { Body }
waarbij de ->
scheidt parameters en lambda-expressiegebied.
De parameters zijn tussen haakjes ingesloten die dezelfde manier is als voor methoden en het Lambda-expressiebody is een blok van code die is ingesloten in beugels.
2, Autoriteit 36%
Deze is ook nuttig wanneer u een functionele interface wilt implementeren
Runnable r = ()-> System.out.print("Run method");
is gelijk aan
Runnable r = new Runnable() {
@Override
public void run() {
System.out.print("Run method");
}
};
3, Autoriteit 21%
Ik geloof dat deze pijl bestaat vanwege je IDE. Intellij-idee doet zoiets met een code. Dit wordt code-vouwen genoemd. U kunt op de pijl klikken om deze uit te breiden.
4, Autoriteit 10%
Het is een lambda-expressie.
Het betekent dat Arg0 van de ListOFCARS een van de items van die lijst is.
Met dat item gaat hij doen, vandaar de – & GT;, wat dan ook in de beugels is.
In dit voorbeeld gaat hij een lijst met auto’s retourneren die passen bij de voorwaarde
Car.SEDAN == ((Car)arg0).getStyle();