首页 > 代码库 > java8简单入门--函数式接口 @FunctionalInterface
java8简单入门--函数式接口 @FunctionalInterface
1、介绍
看了几篇关于 java8 入门的例子,其中引入了许多令人期待已久的特性(虽然我没有过这样的体会),但不管你的代码是普通青年款还是文艺青年款,你都可以从被 java8 的重新组织的代码看到她的简洁之处,不得不让我对这些新入贵圈(java圈)的小鲜肉做一些记录,以便我能很好的利用他们。
最大的一个特点莫非就是引入了“函数式”编程这一个概念(都是剽窃的别的语言来的),还有那么多新奇的词语,比如“语法糖”“闭包”“显式|隐式函数”等这里我就不再一个一个去体会了,这里属于初次接触,先理解会用为主,细节的深入待后期慢慢琢磨。
2、函数式接口 -- @Functionnalinterface
在翠花正式上代码示例之前,我们现来对这个函数式接口有个认识:
- 接口必须只有一个抽象方法;
- 接口可以有其他的默认(default)或者静态(static)方法;
- 接口默认继承了 Object 类,所以接口中不能覆盖了 Object 中的方法;
说明:该注解不是必须的,如果一个接口满足“函数式接口”特性,那么不加这个注解也没有影响,加上该注解能够更好的让编译器检查,如果不符合规范将会报编译错误。
比如在 jdk8 中就对Comparator、Callable、Runnable等接口加上了该注解,下面两段代码的效果是一样的:
1 public static void runThreadByLambda() { 2 Runnable runnable = () -> System.out.println("这个是用拉姆达实现的线程"); 3 new Thread(runnable).start(); 4 } 5 6 //--------------------------------------------------------------------------------- 7 public static void runThreadByInnerClass() { 8 Runnable runnable = new Runnable() { 9 @Override 10 public void run() { 11 System.out.println("这个是用内部类实现的线程"); 12 } 13 }; 14 new Thread(runnable).start(); 15 }
java8简单入门--函数式接口 @FunctionalInterface
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。