Soweit ich das verstanden habe, kann man Methoden als Implementierungen für funktionale Interfaces benutzen.Einzige Bedingung ist, dass der Methodenkörper übereinstimmt.
Wieso klappt dann folgendes?:
List<String> liste = Arrays.asList("qw", "eeqwe", "wdasd");
StringBuilder builder = new StringBuilder();
liste.forEach(builder::append);
Die ForEach-Schleife einer Liste verlange eine Implementation vom Consumer-Interface dessen accept()-Methode void ist und genau einen Parameter besitzt.
Die append-Methode des StringBuilders ist nicht void und gibt einen StringBuilder zurück.
Die Methodekörper sind hier doch anders.
Also wieso klappt das?
Wieso klappt dann folgendes?:
List<String> liste = Arrays.asList("qw", "eeqwe", "wdasd");
StringBuilder builder = new StringBuilder();
liste.forEach(builder::append);
Die ForEach-Schleife einer Liste verlange eine Implementation vom Consumer-Interface dessen accept()-Methode void ist und genau einen Parameter besitzt.
Die append-Methode des StringBuilders ist nicht void und gibt einen StringBuilder zurück.
Die Methodekörper sind hier doch anders.
Also wieso klappt das?