java

java8四大基本函数式接口

2022-06-12  本文已影响0人  HachiLin

  java8中提供了四个内置的函数式接口,通过直接使用这四个接口,或者使用它们的扩展接口,可以让我们很方便的使用lambda表达式。

1. Consumer<T> 消费型接口

@FunctionalInterface
public interface Consumer<T> {
 
    /**
     * Performs this operation on the given argument.
     *
     * @param t the input argument
     */
    void accept(T t);
}
import java.util.function.Consumer;

@Test
public consumerTest() {
    // 消费型接口  有参数,无返回值
    Consumer<String> consumer = t -> {
        System.out.println(t);
    };
    consumer.accept("consumer");
}

输出:consumer

2. Supplier<T> 提供型接口

@FunctionalInterface
public interface Supplier<T> {

   /**
    * Gets a result.
    *
    * @return a result
    */
   T get();
}
import java.util.function.Supplier;

@Test
public supplierTest() {
    // 供给型接口  无参数,有返回值
    Supplier<String> supplier = () -> {
        return  "supplier";
    };
    System.out.println(supplier.get());
}

输出:supplier

3. Function<T, R> 函数型接口

@FunctionalInterface
public interface Function<T, R> {
 
    /**
     * Applies this function to the given argument.
     *
     * @param t the function argument
     * @return the function result
     */
    R apply(T t);
}
import java.util.function.Function;

@Test
public functionTest() {
    // 函数型接口 有参数,有返回值
    Function<Integer, Integer> function = s -> {
        return s*2;
    };
    System.out.println(function.apply(1));
}

输出:2

4. Predicat<T> 断言型接口

@FunctionalInterface
public interface Predicate<T> {
 
    /**
     * Evaluates this predicate on the given argument.
     *
     * @param t the input argument
     * @return {@code true} if the input argument matches the predicate,
     * otherwise {@code false}
     */
    boolean test(T t);
}
import java.util.function.Predicate;

@Test
public predicateTest() {
    //断定型接口 有参数,返回值为boolean
    Predicate<String> predicate = s ->{
        if (s == "predicate") {
            return true;        
        }
        return false;
    };
    System.out.println(predicate.test("predicate"));
}

输出:ture

参考文献

上一篇下一篇

猜你喜欢

热点阅读