Hallo,
ich habe eine Frage zu Lambda-Ausdrücken. Im Buch "Java ist auch eine Insel" steht:
"Der in fett gesetzte Ausdruck nennt sich Lambda Ausdruck. Er ist eine kompakte Art und Weise, Schnittstellen mit genau einer Methode zu implementieren; die Schnittstelle Comparator hat genau eine Operation compare(...)."
Das stimmt doch nicht. java.util.Comparator hat zwei abstrakte Methoden
- compare(...)
- equals(...)
Woher weiss ich jetzt - ohne das Probieren zu müssen - , dass ich die Methode compare(...) als Lamda-Ausdruck benutzen kann die Methode equals(...) aber nicht?
Error: The target type of this expression must be a functional interface
ich habe eine Frage zu Lambda-Ausdrücken. Im Buch "Java ist auch eine Insel" steht:
Java:
public static void main(String[] args) {
String[] words = { "M", "\nSkyfall", "Q", "\t\tAdele\t" };
/* FETT */
Arrays.sort(words, (String s1, String s2) -> {
return s1.trim().compareTo(s2.trim());
});
/* ende FETT */
System.out.println(Arrays.toString(words));
}
Das stimmt doch nicht. java.util.Comparator hat zwei abstrakte Methoden
- compare(...)
- equals(...)
Woher weiss ich jetzt - ohne das Probieren zu müssen - , dass ich die Methode compare(...) als Lamda-Ausdruck benutzen kann die Methode equals(...) aber nicht?
Java:
public static void main(String[] args) {
boolean gleich = false;
String s1 = "Test";
String s2 = "Test";
gleich = (String s1, String s2) -> {
s1.equals(s2);
}
}
Zuletzt bearbeitet: