Das ist eine einfache übliche Methode, warum würde es als BiFunction
erstellt werden? es sei denn, Sie sagen es natürlich.
Es gibt eine Top-Level-Klasse namens jdk.jshell.JShell
, die diese Methode (oder einen anderen Status) enthält; aber man kann es nicht eine Methode Referenz zu deklarieren verwenden:
jshell> int add(int x, int y) { return x + y; }
Bedeutung dies nicht funktionieren würde:
jshell> BiFunction<Integer, Integer> by = JShell::add; // or this::add
Sie müssen würde wickeln, dass add
Methode in einer Klasse:
jshell> class Foo { static int add(int x, int y) { return x + y; } ...
Und dann zuweisen:
jshell> BiFunction<Integer, Integer, Integer> bi = Foo::add;
bi ==> $Lambda$15/[email protected]
Es ist nur ein ['MethodSnippet'' (https://docs.oracle.com/javase/9/docs/api/jdk/jshell/MethodSnippet.html) und ich glaube, da JShell in erster Linie auf 'Snippet' (https://docs.oracle.com/javase/9/docs/api/jdk/jshell/Snippet.html) und seine Auswertung. Ich würde Sie bitten, seine Typen/Unterklassen zu lesen. Wahrscheinlich hoffe ich, dass die Frage nicht zu der Frage kommt, wie JShell Snippets auswertet. – nullpointer