当前位置: 首页 > news >正文

深圳 网站建设公关于建设工程的网站

深圳 网站建设公,关于建设工程的网站,asp做网站和dw的区别,青岛注册公司流程在工作中我需要,我需要递归处理复杂嵌套的JSON字符串,然后处理方法有多种,为了代码通用性,我想要把处理方法当作参数,传入到函数中,然后根据不同的处理方法处理字符串。通过查资料得知,可以使用…

在工作中我需要,我需要递归处理复杂嵌套的JSON字符串,然后处理方法有多种,为了代码通用性,我想要把处理方法当作参数,传入到函数中,然后根据不同的处理方法处理字符串。通过查资料得知,可以使用函数式接口来实现此功能。

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法的接口。

定义

Java8新增加的函数接口放在java.util.function包中,一般Java8提供的接口够用了。当然也可以自定义,比如可按照以下方式:

@FunctionalInterface
public interface UpperCaseString<T,U> {public String upperString(String t,String u);
}	

Java8函数接口介绍

从接口命名来看,其实函数接口类型分为以下几类

Function接口

Fcuntion接口接受一个参数,返回一个的结果。

@Test
public void testLongFunction() {//LongFunction接口一个long类型的数据,返回一个Object类型的数据LongFunction<String> function = t -> String.valueOf(t);String result = function.apply(12l);System.out.println(result);
}

其他还有

  • DoubleToIntFunction 接受一个double类型输入,返回一个int类型结果。
  • ToDoubleBiFunction<T,U> 接受两个输入参数,返回一个double类型结果。

Supplier接口

Supplier接口不接受参数,但是提供一个返回值。

@Test
public void testSupplier() {//不接受参数,返回一个long数据LongSupplier supplier = () -> 2l;System.out.println(supplier.getAsLong());
}

其他还有

  • IntSupplier 不接受参数,返回一个int数据。
  • DoubleSupplier 不接受参数,返回一个double数据。

Predicate接口

Predicate接口接收一个参数,返回一个Boolean类型值。

@Test
public void testPredicate() {//接受两个String参数,取小写之后返回是否相等BiPredicate<String, String> predicate = (t,u) -> t.toLowerCase().equals(u.toLowerCase());System.out.println(predicate.test("AAb", "aaB"));
}

其他还有

  • DoublePredicate 接受一个Double类型的数据,返回Boolean类型

Consumer接口

Consumer接口就是接受一个参数,不返回结果,即消费数据

@Test
public void testConsumer() {//接受一个int类型,先加1,然后再打印IntConsumer consumer = t -> System.out.println(t+1);consumer.accept(2);
}

其他还有

  • BiConsumer 接受两个参数,不返回结果

Operator接口

Operator接口是继承与Function接口,所以使用类似。UnaryOperator<T>一元操作符接口,BinaryOperator<T>二元操作符接口,一般多用于操作计算。

@Test
public void testOperator() {BinaryOperator<Integer> binaryOperator = (t,u) -> t+u;System.out.println(binaryOperator.apply(2, 3));System.out.println(BinaryOperator.maxBy(Double::compareTo).apply(2.5, 4.5));BinaryOperator<String> stringOperator = BinaryOperator.minBy(Comparator.naturalOrder());System.out.println(stringOperator.apply("A","B"));BinaryOperator<String> stringOperator2 = BinaryOperator.minBy(String::compareTo);System.out.println(stringOperator2.apply("2020-01-14","2020-01-13"));
}

其他还有

  • IntUnaryOperator 接受一个参数同为类型int,返回值类型也为int。
  • LongBinaryOperator 接受两个参数同为类型long,返回值类型也为long。

总结

上述是介绍了几种函数式接口,其他也还有很多,但是其他就是另外的变式,原理都是共通的。函数式接口可以隐式转换为 lambda 表达式。这样我们平时编程时候比较代码简洁,用起来也是非常方便,值得使用。

http://www.yayakq.cn/news/248292/

相关文章:

  • 九江城市投资建设有限公司网站加强网站建设的建议
  • 凤城网站建设o2o平台系统开发
  • 什么叫网站开发开源系统 网站
  • 唐山微网站建设价格西安建设手机网站
  • 建设个人博客网站制作深圳福田网站建设公司
  • 公司网站建设费入什么科目网站可以用视频做背景吗
  • 平谷建站推广购物软件有哪些
  • 建站优化推广网站开发费用如何记账
  • 微型营销网站制作用媒体做响应式网站可以吗
  • 五华网站建设 优帮云建筑工程网招聘信息
  • 网站搭建策略与方法有哪些方面太原不错的互联网公司
  • 门源县电子商务网站建设公司常熟建设设银行网站
  • 如何写网站文案辽宁省住房和城乡建设厅网站首页
  • 廊坊网站制作套餐多少钱翻译
  • 免费空间域名可以做淘宝客网站推广吗IT男为女朋友做的求婚网站
  • 网站服务提供商如何理解网络营销环境
  • 创新的盐城网站建设wordpress 文章搜集
  • 南岗红旗大街网站建设郑州做品牌网站的公司
  • 网站开发流程视频外包员工强制辞退找谁赔偿
  • 网站设计宽屏尺寸公司建设网站价格
  • 做响应式网站设计师需要做什么橙色的网站模板
  • 阿里网站建设App开发做冷冻食品的网站
  • 网站如何做微信支付宝支付宝支付宝接口紧急访问升级狼人通知
  • 我需要做网站物业管理系统app
  • 那个网站可以做双色球号码对比的wordpress 文章排序插件
  • 北京公司网站建设价格网站建设公司需要哪些
  • 淮安企业网站广西seo
  • 怎么做网站竞价企业咨询管理服务
  • wordpress 网站标题嵌入式开发要学什么
  • 广州网站推广建设行业门户网站模板