Interfaz funcional de programación concurrente JUC (13)

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());
    }
}

 

Supongo que te gusta

Origin blog.csdn.net/weixin_45480785/article/details/105378225
Recomendado
Clasificación