Cuatro interfaces funcionales
expresión lambda, programación en cadena, interfaz funcional, Stream, cálculo de streaming
Interfaz funcional: una interfaz con un solo método
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
// Interfaz súper multifuncional
// Simplifique el modelo de programación y aplique mucho en la parte inferior de la nueva versión del marco
// foreach (interfaz funcional para consumidores)
Función de interfaz funcional
package com.xizi.function;
import java.util.function.Function;
public class Test1 {
public static void main(String[] args) {
// Function<String,String> function = new Function<String,String>(){
// @Override
// public String apply(String s) {
// return s;
// }
// };
// lambda简化
Function<String,String> function =( s)->{return s;};
System.out.println(function .apply("abc"));
}
}
La interfaz de aserción tiene un parámetro de entrada y el valor de retorno solo puede ser un booleano
package com.xizi.function;
import java.util.function.Predicate;
public class Test2 {
public static void main(String[] args) {
//判断字符串是否为空
// Predicate<String> predicate = new Predicate<String>(){
// @Override
// public boolean test(String str) {
// return str.isEmpty();
// }
// };
Predicate<String> predicate =(str)->{return str.isEmpty();};
System.out.println(predicate.test(" "));
}
}
Interfaz de consumidor consumidor solo entrada sin valor de retorno
package com.xizi.function;
import java.util.function.Consumer;
public class Test3 {
public static void main(String[] args) {
Consumer<String> consumer = new Consumer<String>(){
@Override
public void accept(String string) {
System.out.println(string);
}
};
Consumer<String> consumer2 = (string)->{System.out.println(string);};
consumer.accept("ava");
consumer2.accept("ava");
}
}
La interfaz de suministro del proveedor no tiene parámetros y solo devuelve valores
@FunctionalInterface
public interface Supplier<T> {
T get();
}
package com.xizi.function;
import java.util.function.Supplier;
public class Test4 {
public static void main(String[] args) {
// Supplier supplier = new Supplier<Integer>(){
// @Override
// public Integer get() {
// return 12546;
// }
// };
Supplier supplier =()->{ return 12546;};
System.out.println(supplier.get());
}
}