Ich haette eine Frage zu folgendem Lambda:
Woher weiß er das sotieren soll? Ich meine wenn ich selbst Lambdas mit eigenen Interfaces erstelle kann ich es i.d.R noch nachvollziehen, aber hier ist es so das diesem Lambda das functional Interface public void forEach(Consumer<? super E> action) zugrunde liegt.
Wird das Lambda wie folgt ausgewertet:
(n -> System.out.println(n)) muss fuer den Compiler ja das Consumer<? super E> action> sein, bzw. das Interface in der forEach Schleife. Nur wie kommt er jetzt darauf alle Strings, Integers usw. zu sotieren? In der Doc findet sich zum Consumer Interface folgendes "This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference." Mir erschließt sich immer noch nicht wie der Compiler darauf kommt, zu sotieren. Weiß da jmd. weiter?
mfg
Java:
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create an ArrayList which going to
// contains a list of Numbers
ArrayList<Integer> Numbers = new ArrayList<Integer>();
// Add Number to list
Numbers.add(23);
Numbers.add(32);
Numbers.add(45);
Numbers.add(63);
// forEach method of ArrayList and
// print numbers
Numbers.forEach((n) -> System.out.println(n));
}
}
Wird das Lambda wie folgt ausgewertet:
(n -> System.out.println(n)) muss fuer den Compiler ja das Consumer<? super E> action> sein, bzw. das Interface in der forEach Schleife. Nur wie kommt er jetzt darauf alle Strings, Integers usw. zu sotieren? In der Doc findet sich zum Consumer Interface folgendes "This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference." Mir erschließt sich immer noch nicht wie der Compiler darauf kommt, zu sotieren. Weiß da jmd. weiter?
mfg