PS: 因想提取重复代码,所以寻求方案,最终确认使用函数式编程。但百度查下大部分写的是内置类用新版的函数式接口怎么实现(Consumer  Function Predicate);

1. 创建一个springboot项目

2.定义一个普通接口(TestInterface.java)

2.1)类上注明为函数式接口(@FunctionalInterface), 有且只能有一个方法;

2.2)定义接口 void testInterface(String str);

package com.inte;@FunctionalInterface
public interface TestInterface {void testInterface(String str);
}

3. 定义一个普通Java类(Test.java)

package com.inte;/*** @author :于志强* @date :Created in 2019/9/6 15:02* @description:测试函数式接口*/
public class Test {public static void main(String[] args) {// fun 随便起个名字test("test function interface;", fun -> {System.out.println("test press...");});}/*** 测试接口* @param str 传的参数* @param testInterface 接口名字*/public static void test(String str, TestInterface testInterface) {System.out.println("test begin...");testInterface.testInterface(str);System.out.println("test end.");}
}

------------------------------------------------------- 分割线 以上为单参数无返回值  --------------------------------------------------------------------

多入参+出参

4. 定义一个普通接口(MultiParameterInterface.java)

package com.inte;@FunctionalInterface
public interface MultiParameterInterface {String testMultiParameter(String str1, String str2);
}

5. 继续使用Test.java

package com.inte;/*** @author :于志强* @date :Created in 2019/9/6 15:02* @description:测试函数式接口*/
public class Test {public static void main(String[] args) {// fun 随便起个名字test("test function interface;", fun -> {System.out.println("test press...");});System.out.println("-------------------------------- 分割线 --------------------------------------");// 多参数加返回值testMulti("第一个参数,", "第二个参数;", (str1, str2) -> {// 写逻辑处理...return str1 + str2 ;});}/*** 测试接口* @param str 传的参数* @param testInterface 接口名字*/public static void test(String str, TestInterface testInterface) {System.out.println("test begin...");testInterface.testInterface(str);System.out.println("test end.");}/*** 测试接口* @param str1 传的参数* @param str2 传的参数* @param multiParameterInterface 接口名字*/public static void testMulti(String str1, String str2, MultiParameterInterface multiParameterInterface) {System.out.println("multi begin...");String str = multiParameterInterface.testMultiParameter(str1, str2); // 接值System.out.println(str);System.out.println("multi end.");}
}

JAVA 自定义函数式编程相关推荐

  1. Java 8 函数式编程学习笔记

    Java 8 函数式编程学习笔记 @(JAVASE)[java8, 函数式编程, lambda] Java 8 函数式编程学习笔记 参考内容 Java 8中重要的函数接口 扩展函数接口 常用的流操作 ...

  2. 阅读笔记–Java 8函数式编程,建议看书,作者高屋建瓴

    阅读笔记–Java 8函数式编程 书籍代码 为什么需要再次修改Java 1996年1月,Java1.0发布,商业发展需要更复杂的应用,跑在功能强大的多核CPU机器上.带有高效运行时编译器的Java虚拟 ...

  3. Java 代码写的又臭又长,还不会用 Java Stream 函数式编程?

    点击上方"猿芯",选择"设为星标" 后台回复"1024",有份惊喜送给面试的你 原文 https://www.cnblogs.com/Car ...

  4. java8 函数式编程_如何使用Java 8函数式编程生成字母序列

    java8 函数式编程 我偶然发现了用户" mip"一个有趣的堆栈溢出问题 . 问题是: 我正在寻找一种生成字母序列的方法: A, B, C, ..., Z, AA, AB, AC ...

  5. 如何使用Java 8函数式编程生成字母序列

    我偶然发现了用户" mip"一个有趣的堆栈溢出问题 . 问题是: 我正在寻找一种生成字母序列的方法: A, B, C, ..., Z, AA, AB, AC, ..., ZZ. 可 ...

  6. 【Java】函数式编程学习笔记——Stream流

    学习视频:https://www.bilibili.com/video/BV1Gh41187uR?p=1 (1)[Java]函数式编程学习笔记--Lambda表达式 (2)[Java]函数式编程学习笔 ...

  7. java接口构造函数_Java8自定义函数式编程接口和便捷的引用类的构造器及方法

    什么是函数编程接口? 约束:抽象方法有且只有一个,即不能有多个抽象方法,在接口中覆写Object类中的public方法(如equals),不算是函数式接口的方法. 被@FunctionalInterf ...

  8. Java 8th 函数式编程:lambda 表达式

    Lambda 表达式是 java 8th 给我们带来的几个重量级新特性之一,借用 lambda 表达式可以让我们的程序设计更加简洁.最近新的项目摒弃了 6th 版本,全面基于 8th 进行开发,本文将 ...

  9. 【Java】函数式编程

    1 函数式接口 1.1 概念 函数式接口是有且仅有一个抽象方法的接口,可以包括静态和默认方法. @FunctionalInterface:加上注解,检测是否的函数式接口 @FunctionalInte ...

最新文章

  1. LeakCanary: 让内存泄露无所遁形
  2. 迭代加深搜索与埃及分数求解
  3. Java多线程的几种写法
  4. 24c语言程序设计是啥,《C语言程序设计》作业答案.docx
  5. 如何判断windows版本?
  6. oracle未找到时区,解决ORA-01882:未找到时区区域%s
  7. 如果测试没有梦想,那跟咸鱼有什么区别?
  8. 【应用篇】WCF学习笔记(一):Host、Client、MetadataExchage
  9. JSON.parse()、JSON.stringify()和eval()的作用
  10. jQuery实现锚点滑动定位
  11. 为什么java IO类不用基于继承的设计方案?
  12. 连续区间(数据岛)查询
  13. java 注解开发 解耦_Android java 解耦框架注解Dagger2
  14. 传输层的几个部分的ALCAP、SSCOP、MTP3-B、SCCP、SAAL、SCCF、STC、IP、UDP、GTPU
  15. android webview 加载内容,Android中通过Java获取Webview加载内容
  16. 软件测试技术(思维导图)
  17. 用迅雷下载百度网盘的文件
  18. 以太坊源码分析(37)eth以太坊协议分析
  19. 双十一来了,给自己的应用做个icon换脸小功能
  20. 淘宝店铺列表部分示例

热门文章

  1. [羽毛球入门]初级培训内容
  2. java 通配符_Java中的通配符匹配
  3. 数字化时代-4:从劳动者角色看打工、创业、兼职
  4. Flash Player小程序(内嵌窗口)在Chrome、Firefox、Edge、360极速/安全、IE 8、Oprea 36、QQ、搜狗等浏览器上的应用
  5. C++/PTA 2017final英文语句格式简单检查
  6. 952. 按公因数计算最大组件大小 : 枚举质因数 + 并查集运用题
  7. python分别统计男女人数_Python+ITchart实现微信中男女比例,城市分布统计并可视化显示...
  8. springboot毕设项目漫语在线论坛设计与实现5i5u1(java+VUE+Mybatis+Maven+Mysql)
  9. 英文儿歌宝宝歌曲幼儿园歌曲童谣等1912首打包下载
  10. 回忆PHTOTSHOP技巧-复制技巧篇