java 기초--->java8의 함수식 인터페이스

7179 단어
이 안에서java8의 함수식 인터페이스,Function,Consumer,Predicate,Supplier를 간단하게 설명합니다.
 

함수식 인터페이스 예


1. Function: 매개변수를 수락하고 반환 매개변수가 있습니다.

package com.linux.huhx.function;

import java.util.function.Function;

public class FunctionDemo {

  private static int operateValue(int value, Function function) {
    return function.apply(value);
  }

  private static int operateValue(int value, Function srcFunc, Function destFunc) {
    return srcFunc.andThen(destFunc).apply(value);
  }

  public static void main(String[] args) {
    int value = 10;
    int innerResult = operateValue(value, new Function() {
      @Override
      public Integer apply(Integer t) {
        return 20 + t;
      }
    });
    System.out.println(innerResult); // 30

    int lambdaResult = operateValue(value, t -> t + 20);
    System.out.println(lambdaResult); // 30

    int andThenResult = operateValue(value, val -> val + 20, val -> val + 30);
    System.out.println(andThenResult); // 60
  }
}

 

2. Consumer: 매개변수를 수락하고 반환되지 않음

package com.linux.huhx.function;

import java.util.function.Consumer;

public class ConsumerDemo {

  private static void printValue(String value, Consumer consumer) {
    consumer.accept(value);
  }

  public static void main(String[] args) {
    printValue("huhx", s -> System.out.println(s.toUpperCase())); // HUHX
  }
}

 

3. Predicate: 매개변수를 받아들여 boolean으로 돌아갑니다.

package com.linux.huhx.function;

import java.util.function.Predicate;

public class PredicateDemo {

  private static boolean predicateValue(int value, Predicate predicate) {
    return predicate.test(value);
  }

  public static void main(String[] args) {
    System.out.println(predicateValue(17, x -> x >= 18)); // false
  }
}

 

넷째, Supplier: 매개변수를 수락하지 않고 반환 값이 있습니다.

package com.linux.huhx.function;

import java.util.function.Supplier;
import org.springframework.util.StringUtils;

public class SupplierDemo {

  private static String getOrDefault(String value, Supplier supplier) {
    return StringUtils.isEmpty(value) ? supplier.get() : value;
  }

  public static void main(String[] args) {
    String name = "";
    System.out.println(getOrDefault(name, () -> "huhx")); // huhx
  }
}

 

우정 링크


좋은 웹페이지 즐겨찾기