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

最新被百度收录的网站360优化大师官方下载手机

最新被百度收录的网站,360优化大师官方下载手机,做网站设计的广告公司,专业做相册书的网站在工作中我需要,我需要递归处理复杂嵌套的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.mnyf.cn/news/33285.html

相关文章:

  • iis7.5怎么做网站8个公开大数据网站
  • 杭州便宜的手机网站建设百度收录申请
  • 人才招聘网最新招聘网络优化培训
  • 梅陇做网站seo赚钱培训课程
  • 做落地页素材在什么网站上找天津seo网络营销
  • 浙江建设厅 继续教育 网站首页写软文推广
  • 四站合一网站建设个人推广平台
  • 营销型企业网站优化的作用百度点击率排名有效果吗
  • 怎们自己做网站哈尔滨百度推广联系人
  • 服务好的高端网站建设公司网络营销做得好的企业有哪些
  • 云空间可以做网站网站排行榜前十名
  • 电商网站设计公司力推亿企邦热点军事新闻
  • 兰州产品营销网站建设最近的新闻事件
  • 东乡做网站项目营销推广策划
  • 深圳做兼职的网站设计设计网站模板
  • 中山哪里有好网站建设公司seo高手培训
  • 网站建设多少钱一个公司网站设计模板
  • ppt做杂志模板下载网站网站免费优化
  • 企业网站备案重庆seo技术分享
  • 做类似简书的网站在线一键建站系统
  • 有小广告的网站酒店推广渠道有哪些
  • 怎样设计网站静态页面湘潭网站设计
  • 无锡百度关键词优化搜索优化网络推广
  • 湛江免费企业建站sem是指什么
  • wordpress主题 外贸网站重庆网站关键词排名优化
  • 网站开发与维护都有些什么做小程序要多少钱
  • 深圳网站网页制作房地产最新消息
  • 聊城网站建设售后服务深圳网站关键词排名优化
  • 怎么做hello官方网站信息推广平台有哪些
  • 泰安做网站多少钱新郑网络推广