Java 8 studieren (siehe Konstruktor)

Diesmal ist es eine Konstruktorreferenz. Die Methodenreferenz im vorherigen Artikel spezifizierte sinnlich, dass die Implementierung der abstrakten Methode der funktionalen IF eine spezifische Methode sein sollte. Ist es ein Bild, dass Sie eine Methode als bestimmte Methode und auch als Konstruktor angeben können?

Bereiten Sie wie beim letzten Mal gegebenenfalls einige funktionale IFs vor. SampleBean ist eine dedizierte Rückgabewert-Bean, die für Methode A von SampleFunctionalIF3 vorbereitet wurde, und SampleBeanExt ist eine Bean, die sie nur erweitert, um einen Standardkonstruktor zu erstellen. Getter und Setter werden weggelassen.

@FunctionalInterface
public interface SampleFunctionalIF<T> {
	String methodA(T object);
}
@FunctionalInterface
public interface SampleFunctionalIF2 {
	String methodA();
}

@FunctionalInterface
public interface SampleFunctionalIF3 {
	SampleBean methodA(String A, String B);
}
public class SampleBean {

	private String val1;
	private String val2;
}
public class SampleBeanExt extends SampleBean {

	SampleBeanExt(String param1, String param2) {
		this.setVal1(param1);
		this.setVal2(param2);
		System.out.println("SampleBeanExt-Konstruktor aufgerufen");
	}
}

Im Folgenden wird versucht, diese auszuführen.

public class ConstructorRef {
	public static void main(String[] args) {

		//Mit Argument (String)Im Falle von
		//Neuer String zum Zeitpunkt des Aufrufs der vom Funktionstyp IF angegebenen abstrakten Methode methodA("xyz")Wird genannt
		System.out.println("-----Beispiel 1-----");
		SampleFunctionalIF<String> sample = String::new;
		System.out.println(sample.methodA("xyz"));

		//Keine Argumente (String)Im Falle von
		//Neuer String zum Zeitpunkt des Aufrufs der vom Funktionstyp IF angegebenen abstrakten Methode methodA()Wird genannt
		//Die Größe ist 0, da es sich um ein leeres Zeichen handelt
		System.out.println("-----Beispiel 2-----");
		SampleFunctionalIF2 sample2 = String::new;
		String s2 = sample2.methodA();
		System.out.println(s2.length());

		//Mit 2 Argumenten
		//Zu dem Zeitpunkt, zu dem die vom Funktionstyp IF angegebene abstrakte Methode methodA aufgerufen wird
		// new SampleBeanExt("hello","world")Wird genannt
		System.out.println("-----Beispiel 3-----");
		SampleFunctionalIF3 sample3 = SampleBeanExt::new;
		SampleBean bean = sample3.methodA("hello", "world");
		System.out.println("1:" + bean.getVal1());
		System.out.println("2:" + bean.getVal2());
	}
}

Und das Ausführungsergebnis

-----Beispiel 1-----
xyz
-----Beispiel 2-----
0
-----Beispiel 3-----
SampleBeanExt-Konstruktor aufgerufen
1:hello
2:world

Nach der Methodenreferenz scheint es nicht gut zu sein. Ich kann mir jedoch keine Verwendung dafür vorstellen.

Recommended Posts

Java 8 studieren (siehe Konstruktor)
Java 8 studieren (siehe Methode)
Java studieren ―― 3
Java studieren ―― 9
Java (Konstruktor)
Java studieren ―― 4
Java studieren -5
Java # 0 studieren
Java studieren ―― 8
Java-Konstruktor
Java studieren ②
Java studieren ―― 7
Java studieren ―― 2
Java studieren ①
Java studieren -10
Java 8 studieren (optional)
Java9 studieren (jShell)
Java 8 studieren (Stream)
Verstehen Sie den Java-Konstruktor
Studieren der Verwendung des Konstruktors (Java)
Java 8 studieren (Sammler / Sammler)
Java studieren ~ Teil 8 ~ Besetzung
JAVA-Konstruktoraufrufverarbeitung
Java 8 studieren (Lambda-Ausdruck)
Ich habe den Konstruktor (Java) studiert.
[Für Anfänger] Zusammenfassung des Java-Konstruktors
Java # 6 studieren (Wie man Blöcke schreibt)
Java
Java, Überlastungskonstruktor ab Anfänger
Java 8 studieren (StaticIF und Standardmethode)
Java 8 studieren (String Joiner und Join)
Java
Java9 studieren (dropWhile, takeWhile und Stream.ofNullable)
Konstrukteur
Studieren Sie Java 8 (Datums-API im Paket java.time)
[# 1 Java] Grundlagen der Java-Major-Prämisse vor dem Studium-
Java studieren (Grundlegende Prüfung zum Informationsverarbeitungsingenieur)
Mit dem effektiven privaten Java-Konstruktor nicht unveränderlich erzwingen
[Java] Instanzmethode, Instanzfeld, Klassenmethode, Klassenfeld, Konstruktorzusammenfassung