[JAVA] Die Funktion ist sehr einfach zu bedienen

Funktionsschnittstelle

Sie können jetzt eine Methode als Funktion in einen Lambda-Ausdruck schreiben. Lass es uns vorerst tun.

Referenz Offizielle Referenz

Function.java


package functionPractice;

import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Arrays;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;
import java.util.stream.Collectors;

/**
 * To practice function-interface
 * 
 * @author me
 *
 */
public class FunctionPractice {

	/**
	 * main
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			run();
		} catch (NumberFormatException e) {
			echo.accept("・ Ω ・ v");
		}
	}

	/**
	 * run
	 * 
	 * @throws NumberFormatException if conversion to numeric number is impossible.
	 */
	private static void run() throws NumberFormatException {
		generate.get().stream().filter(Objects::nonNull).map(toString.andThen(add3).andThen(toInteger)).forEach(echo);
		echo.accept(join.apply(generate.get()));
		List<Integer> list = generate.get().stream().map(toInteger).collect(Collectors.toList());
		echo.accept(list);
		echo.accept(sum.apply(list));
	}

	/** Output */
	static Consumer<Object> echo = v -> System.out.println(v);
	/** Generate */
	static Supplier<List<String>> generate = () -> Arrays.asList(null, "1", "2", "3");
	/** Object to String */
	static Function<Object, String> toString = v -> String.valueOf(v);
	/** Object to Integer */
	static Function<Object, Integer> toInteger = v -> Integer
			.parseInt(Optional.ofNullable(v).orElse("1").toString());
	/** Add "3" */
	static UnaryOperator<String> add3 = v -> v + "3";
	/** Join comma */
	static Function<List<String>, String> join = v -> v.stream().filter(Objects::nonNull).collect(Collectors.joining(","));
	/** Sum integer list */
	static Function<List<Integer>, Integer> sum = v -> v.stream().filter(Objects::nonNull)
			.collect(Collectors.summingInt(Integer::intValue));
}

Deklarieren Sie einfach Function <Argument, Rückgabewert> und schreiben Sie einen beliebigen Prozess.

Nun, es gibt viele andere Dinge, aber sie wurden offiziell erwähnt.

Was Sie normalerweise in der Methode schreiben, indem Sie in Funtion schreiben Dadurch wird die Anzahl der Zeilen verringert und die Anzeige erleichtert.

Die Schwierigkeit ist, dass JavaDoc schwer zu sehen ist?

Trotzdem wird es wahnsinnig klug sein, oder?

Recommended Posts

Die Funktion ist sehr einfach zu bedienen
Einfach zu bedienende array.map (&: Methode)
Einfach zu bedienender Cloud Firestore (Android)
[Verarbeitung × Java] Verwendung der Funktion
[Rails] Enum ist einfacher zu bedienen! Enumelize!
Schreiben Sie einfach zu wartenden Code (Teil 1)
Tag-Funktion zu Rails hinzufügen. Verwenden Sie Acts-as-Taggable-On
Super einfache Möglichkeit, Enum mit JSP zu verwenden
Schreiben Sie einfach zu pflegenden Code (Teil 4)
Schreiben Sie einfach zu wartenden Code (Teil 3)
Verwendung von Map
Wie benutzt man rbenv?
Verwendung von fields_for
Verwendung von java.util.logging
Verwendung der Karte
Verwendung von collection_select
Lassen Sie uns den Pfad durchgehen, um Docker-Slim zu verwenden
Wie benutzt man Twitter4J
Wie benutzt man active_hash! !!
Verwendung von MapStruct
Verwendung von TreeSet
[Verwendung des Etiketts]
Wie man Identität benutzt
Wie man Hash benutzt
14 Entspricht einem Funktionsausdruck
Verwendung von Dozer.mapper
Wie benutzt man Gradle?
Verwendung von org.immutables
Verwendung von java.util.stream.Collector
Verwendung von VisualVM
Verwenden Sie stream, um zu überprüfen, ob SimpleDateFormat threadsicher ist
Verwendung von Map
Einfach zu wartender FizzBuzz
Delicate ist praktisch, wenn Sie Teile wiederverwenden möchten
Verwendung der Ketten-API
[Java] Verwendung von Map
Verwendung der Warteschlange mit Priorität
Java zum Spielen mit Function
So fügen Sie die ActionText-Funktion hinzu
[Rails] Verwendung von Enum
Einfach zu erstellende Verarbeitungsbibliothek
Verwendung von Java Optional
Verwendung von JUnit (Anfänger)
Verwendung von Ruby return
[Rails] Verwendung von Enum
Verwendung von @Builder (Lombok)
Verwendung der Java-Klasse
Wie man Big Decimal benutzt
[Java] Verwendung von removeAll ()
Verwendung von String [] args
Verwendung von Rails Join