Wat doet de pijl-operator, ‘- & GT;’, doen in Java?

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();

Other episodes