需要标注此接口 @Functionallnterface,否则万一团队成员在接口上加了其他方法则容易出故障
- package com.learning.javalearning.lambda.chapter3;
-
- /**
- * 模拟四则运算
- *
- * @param
表示 Return 对象 - * @param
表示 入参 - */
- @FunctionalInterface
- public interface OperFunction
{ - R operation(T t1,T t2);
- }
- package com.learning.javalearning.lambda.chapter3;
-
- import lombok.extern.slf4j.Slf4j;
-
- @Slf4j
- public class Main {
- public static void main(String[] args) {
- int a = 20;
- int b = 5;
- log.info("{} + {} = {}",a,b,operation(a,b,(x,y)->x+y));
- log.info("{} - {} = {}",a,b,operation(a,b,(x,y)->x-y));
- log.info("{} X {} = {}",a,b,operation(a,b,(x,y)->x*y));
- log.info("{} / {} = {}",a,b,operation(a,b,(x,y)->x/y));
- }
-
- public static Integer operation(Integer x, Integer y, OperFunction
of) { - return of.operation(x, y);
- }
- }
