Java 8 studieren (siehe Methode)

Dieses Mal studieren wir die Methodenreferenz. Es scheint, dass Sie einer IF-Variablen vom Funktionstyp eine Methode zuweisen können. Ich denke, es ist ein Bild, in dem Sie aufgefordert werden, diese (angegebene) Zuweisungsmethode auszuführen, wenn die (einzige) abstrakte Methode des Funktionstyps IF aufgerufen wird. Für diejenigen, die die funktionale IF vergessen haben siehe vorherigen Artikel

Bereiten Sie vorerst zwei funktionale IFs vor, wie unten gezeigt.

@FunctionalInterface
public interface SampleFunctionalIF {

	String methodA();

}
@FunctionalInterface
public interface SampleFunctionalIF2 {

	String methodA(String A, String B);

}

Also, hier ist eine Klasse, die diese nennt

/**
 *Referenz der Studienmethode.
 *Methoden können funktionalen IF-Variablen zugeordnet werden.
 *Funktionsart IF(Ich denke, es ist ein Bild, in dem Sie aufgefordert werden, diese (angegebene) Zuweisungsmethode auszuführen, wenn die (einzige) abstrakte Methode aufgerufen wird.
 * @author komikcomik
 *
 */
public class MethodRef {

	public static void main(String[] args) {
		/*Ohne Argumente*/
		//Ein Bild, das Sie auffordert, stattdessen die Methode Hallo dieser Klasse auszuführen, wenn MethodeA aufgerufen wird, die eine abstrakte IF von SampleFunctionalIF ist.
		System.out.println("-----Beispiel 1-----");
		SampleFunctionalIF if1 = MethodRef::hello;
		System.out.println(if1.methodA());

		/*Mit einem Argument*/
		//Dieser Bereich ist in der Liste nur angemessen bewertet
		System.out.println("-----Beispiel 2-----");
		List<String> l = new ArrayList<>();
		l.add("hoge");
		l.add("hogehoge");
		l.forEach(System.out::println); //Systemimplementierung der abstrakten Methode von List, die funktionale IF ist.out.println(s)Bild angegeben als
		l.forEach(MethodRef::echo); //Es ist ähnlich wie oben, aber Sie können natürlich Ihre eigene Methode ersetzen


		/*Mit 2 Argumenten*/
		System.out.println("-----Beispiel 3-----");
		SampleFunctionalIF2 if2 = MethodRef::join;
		System.out.println(if2.methodA("Hello", "World"));

	}

	public static String hello() {
		System.out.println("Die Hallo-Methode wurde aufgerufen");
		return "hello";

	}

	public static String join(String A, String B) {
		return A + B;

	}

	public static void echo(String s) {
		System.out.println(s);
	}
}

Das Ausführungsergebnis ist wie folgt.

-----Beispiel 1-----
Die Hallo-Methode wurde aufgerufen
hello
-----Beispiel 2-----
hoge
hogehoge
hoge
hogehoge
-----Beispiel 3-----
HelloWorld

Gut wie erwartet. Ich bin es jedoch nicht gewohnt, im Lambda-Stil zu schreiben oder wie :: diesmal zu schreiben, also mache ich mich irgendwie fertig ... Der Lambda-Ausdruck wird als Argument-> Verarbeitung </ b> geschrieben, und wenn Sie das Äquivalent dieses Beispiels 2 in den Lambda-Ausdruck schreiben

		l.forEach(s -> {
			System.out.println(s);
		});

Es scheint also, dass ein ähnlicher Effekt erzielt werden kann. Wie verwenden Menschen, die es richtig benutzen, es richtig?

Recommended Posts

Java 8 studieren (siehe Methode)
Java 8 studieren (siehe Konstruktor)
Java studieren ―― 3
Java studieren ―― 9
Java-Methode
Java (Methode)
Java studieren ―― 4
Java studieren -5
Java studieren ―― 1
Java # 0 studieren
Java studieren ―― 8
Java-Methode
Java studieren ②
[Java] -Methode
Java studieren ―― 7
Java studieren ―― 2
Java studieren ①
Java studieren -10
[Java] -Methode
Java8-Methodenreferenz
Java 8 studieren (optional)
[Java] forEach-Methode
Java9 studieren (jShell)
Java 8 studieren (Stream)
Java8-Methodenreferenz
[Java] Zufällige Methode
[Java] Split-Methode
JAVA DB-Verbindungsmethode
Java 8 studieren (Sammler / Sammler)
Java Learning 2 (Lernen Sie die Berechnungsmethode)
Java-Lernnotiz (Methode)
Informationen zur Bindung von Java-Methoden
Informationen zu Aufteilungsmethoden (Java)
Java-Programmierung (Klassenmethode)
Java studieren ~ Teil 8 ~ Besetzung
Java 8 studieren (Lambda-Ausdruck)
[Java] Grundlegende Methodenhinweise
[Java] Neue Thread-Generierungsmethode (2)
Über die Entscheidungsbedingung der Java GC-Methode
Java Silver Lernmethode Memo
Erstellen Sie eine Java-Methode [Memo] [java11]
Sammlung von Java-Testcode-Methoden
[Java Silver] Über gleich Methode
[Java] Implementierungsmethode für die Timer-Verarbeitung
[Java] Zufällige Generierungsmethode (Zufällig)
Java-Methoden und Methodenüberladungen
Vorteile der statischen Java-Methode
[Java Silver] So generieren Sie ein Array
[Java] Neue Thread-Generierungsmethode (1)
[Java] Objektorientierte Syntaxklassenmethode / Argument
Automatische Methode zur Größenänderung von Fotos von Java
Java-Methodenliste (Denkmal) (im Aufbau)
[Java] Verwendung der Join-Methode
Bildschirmübergang nach Post-Methode [Java]
[Java] Objektorientierte Syntaxklasse / Feld / Methode / Bereich
Java-Vergleich mit der compareTo () -Methode
[Java-Anfänger] == Operator und Gleiche Methode
Java
Java 8 studieren (StaticIF und Standardmethode)
Versuchen Sie, die öffentliche Java-Methode zu extrahieren