jdk 8 함수 인터페이스의 기능
2461 단어 jdk8
JKD8 학습
함수 인터페이스란 무엇입니까?
기능 인터페이스
@FunctionalInterface
public interface Function {
/**
* Applies this function to the given argument.
*
* @param t the function argument
* @return the function result
*/
R apply(T t);
default Function compose(Function super V, ? extends T> before) {
Objects.requireNonNull(before);
return (V v) -> apply(before.apply(v));
}
default Function andThen(Function super R, ? extends V> after) {
Objects.requireNonNull(after);
return (T t) -> after.apply(apply(t));
}
default Function compose(Function super V,?extends T>before) 방법은 전송된 이 함수 방법을 먼저 실행하고 함수 자체를 실행합니다
default Function and Then(Function super R,?extends V>after) 방법은 함수 자체를 먼저 실행하고 전송된 function 함수를 실행하는 것이compose 방법과 정반대이다
코드 예제는 다음과 같습니다.
public class FunctionTest {
public static void main(String[] args) {
FunctionTest test1 = new FunctionTest();
System.out.println(test1.compute1(2, value-> value * 3, value -> value * value));
System.out.println(test1.compute2(2, value-> value * 3, value -> value * value));
}
public int compute1(Integer a, Function func1,Function func2) {
return func1.compose(func2).apply(a);
}
public int compute2(Integer a, Function func1,Function func2) {
return func1.andThen(func2).apply(a);
}
}
12
36
public int compute3(Integer a, Integer b,BiFunction func2) {
return func2.apply(a, b);
}
System.out.println(test1.compute3(2, 3, (value,value2) -> value * value2));
Bifuncation은 하나뿐이고andThen 방법은compose 방법이 없습니다. 왜냐하면compose 방법은 전송 함수 자체가 실행된 후에 하나의 값이기 때문입니다.그러면 이런 방법은 function의compose방법과 같다.그도 Bifunction의 apply 방법을 사용할 수 없습니다. 왜냐하면 이 방법은 두 개의 입참이 필요하기 때문입니다. 그러면 Bifunction에 왜andThen이 있을까요?왜냐하면 andthen 방법은 함수 자체의 apply (r, u, t) 를 호출한 후에 하나의 값으로 인해function 함수를 호출할 수 있기 때문이다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jdk8의datetime 시간 함수 사용 예시JDK8이 발표되었습니다.datetime 시간 함수 사용 방법의 작은 예시를 썼습니다 실행 결과...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.