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

wordpress首页按钮青岛关键词优化seo

wordpress首页按钮,青岛关键词优化seo,网站建设制作报价方案,做词频分析的网站目录 一、介绍 二、示例 (一)Consumer 源码解析 测试示例 (二)Comparator (三)Predicate 三、应用 四、总结 一、介绍 FunctionalInterface是一种信息注解类型,用于指明接口类型声明…

目录

一、介绍

二、示例

(一)Consumer 

源码解析

测试示例 

(二)Comparator

(三)Predicate

三、应用

四、总结 


一、介绍

@FunctionalInterface是一种信息注解类型,用于指明接口类型声明成为Java语言规范定义的函数式接口。从概念上说,函数式接口只有一个抽象方法,因为默认方法有一个实现,所以他们不是抽象的。如果一个接口声明了一个抽象方法覆盖java.lang的一个公共方法,这也不计入接口的抽象方法计数,因为接口的任何实现都将有来自java.lang.Object或其他地方的实现。函数式接口的实例可以使用lambda表达式、方法引用或构造函数引用来创建。


二、示例

(一)Consumer<T> 

(消费者)表示一个接受单个输入参数并且不返回结果的操作。

源码解析

accept()方法接收一个参数,并对该参数执行特定的操作,没有返回值

addThen()方法接受一个consumer类型的对象,它将一个consumer对象与另一个consumer对象进行关联,该方法会返回一个新的consumer对象,它首先执行当前consumer的accept()方法,然后再执行传入的after consumer对象的accpet()方法。

@FunctionalInterface
public interface Consumer<T> {/*** Performs this operation on the given argument.** @param t the input argument*/void accept(T t);/*** Returns a composed {@code Consumer} that performs, in sequence, this* operation followed by the {@code after} operation. If performing either* operation throws an exception, it is relayed to the caller of the* composed operation.  If performing this operation throws an exception,* the {@code after} operation will not be performed.** @param after the operation to perform after this operation* @return a composed {@code Consumer} that performs in sequence this* operation followed by the {@code after} operation* @throws NullPointerException if {@code after} is null*/default Consumer<T> andThen(Consumer<? super T> after) {Objects.requireNonNull(after);return (T t) -> { accept(t); after.accept(t); };}
}

测试示例 

public class ConsumerTest {public static void main(String[] args) {Consumer<String> printUpperCase = s -> System.out.println(s.toUpperCase());Consumer<String> printLength = s -> System.out.println(s.length());Consumer<String> combine = printUpperCase.andThen(printLength);List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Jim");names.forEach(printUpperCase);names.forEach(combine);}
}

(二)Comparator<T>

(比较器)compare方法是Comparator接口中的方法,它用于比较两个对象的大小。一般来说,如果第一个对象小于第二个对象,则返回负整数;如果第一个对象等于第二个对象,则返回零;如果第一个对象大于第二个对象,则返回正整数。

public class ComparatorTest {public static void main(String[] args) {// 自定义比较器,实现compare方法,比较规则是自然数降序排列CustomedComparator customedComparator = new CustomedComparator();List<Integer> list = Arrays.asList(5, 8, -2, 0, 10);list.sort(customedComparator);// forEach函数传入一个consumer对象,底层是加强for循环 + 调用accpet()list.forEach(ele -> System.out.println(ele));}
}

Comparator接口声明了函数式接口,但接口中声明了两个抽象方法,这显然不符合之前给的定义。首先我先验证是否注解允许多个抽象方法,验证得出声明此注解的接口只能有一个抽象方法。Comparator接口中声明了equals和compare两个抽象方法, 其中equals是Object类的公共方法,这里令我不解的是接口中equals方法是声明的抽象方法,但它却无需实现,这里需要注意一下。最后,声明函数式接口只有一个抽象方法这是肯定的。

(三)Predicate<T>

(断言)predicate<T>代表了一个接受一个参数并返回布尔值结果的判断条件。该接口中只有一个抽象方法test,用于对给定的参数进行判断,并返回一个布尔值。

public class PredicateTest {public static void main(String[] args) {Predicate<Integer> predicate = num -> num % 2 == 0;System.out.println(predicate.test(11));System.out.println(predicate.test(0));}
}

三、应用

  1. forEach方法,迭代器方法,参数是consumer对象。
  2. Arrays.sort()方法,传入comparator对象,自定义比较
  3. Stream流操作
  4. lambda表达式

四、总结 

  函数式接口是JDK8的新特性,在函数式接口使用ambda表达式会使代码更加简洁,上述内容如果有错误的地方,希望大佬们可以指正。我一直在学习的路上,您的帮助使我收获更大!觉得对您有帮助的话,还请点赞支持!我也会不断更新文章!

http://www.ds6.com.cn/news/97225.html

相关文章:

  • 合肥市做外贸网站的公司杭州网站建设公司
  • 尚云网站建设域名注册商
  • 甘肃自助建站系统哪家好百度一下首页登录
  • 哪个网站有做彩平的材质贴图宁波seo在线优化方案
  • 怎样设计网站静态页面sem竞价推广是什么
  • 什么是网络营销策划书关键词优化怎么弄
  • 深圳便宜网站建设软文发布软件
  • 主题资源网站建设网络游戏推广员
  • 那些影视解析网站怎么做的短视频营销成功的案例
  • 网站安全证书有问题如何解决加快实施创新驱动发展战略
  • 广州市天气宁波seo网络推广软件系统
  • 青岛的互联网公司有哪些汕头seo优化培训
  • 广州网站建设怎么样互联网销售模式
  • 响应式网站建设代理网络营销就是seo正确吗
  • 临朐网站开发农产品网络营销
  • seo图片seo软文是什么意思
  • 外贸网站建设要注意什么长沙百度推广公司电话
  • 做网站价格刚刚刚刚刚刚好痛
  • 信誉好的微网站建设兰州做网站的公司
  • 上海网站开发技术最好公司电话成都网络推广优化
  • 购物网站网页设计图片太原百度快速优化排名
  • 泉州做鞋子批发的网站黄冈网站建设收费
  • wordpress 页面伪静态页面广州网站优化系统
  • 每一天做网站seo搜索排名优化是什么意思
  • 中国建设网上银行登录广东seo
  • 广东品牌网站建设服务机构郑州厉害的seo顾问公司
  • 哪里有专业做网站搜外
  • 网站访客qq获取系统 报价seo网页优化公司
  • 哪些网站可以做外链西安关键词排名优化
  • 如何做网站热线电话百度账号出售平台