java8之接口的默认方法和lambda表达式小结(一)
来源:互联网 发布:中国男人 外国 知乎 编辑:程序博客网 时间:2024/06/15 05:36
一、接口的默认方法
允许给接口添加 一个 非抽象 的 方法实现,使用default关键字:
interface Test1 { //接口里定义的抽象方法 public abstract void method1(); //接口的默认方法 default String method2() { return "method2()"; } }
实现了Test1接口的子类只需要实现method1()方法即可,默认方法method2()可以直接使用:
//接口不能直接实现,使用匿名内部类Test1 test1 = new Test1(){ @Override public void method1() { System.out.println("method1()"); }}; //调用接口的抽象方法 test1.method1(); //method1(); //调用接口的默认方法 test1.method2(); //method2();
除了默认方法,Java8的 接口 也可以有 静态方法 的实现:
public interface MyInterf { String m1(); default String m2() { return "Hello default method!"; } static String m3() { return "Hello static method in Interface!"; } }
二、Lambda表达式
语法:(参数列表) 箭头符合(->) {方法体}。
(参数1,参数2…参数n) -> {方法体}。
如果方法体只有一行代码,可以省略大括号{}和return关键字。
(参数列表) -> 表达式
例:
//1.不需要参数,返回值为5 () -> 5;//2.接收一个参数,返回其2倍的值 (x) -> 2*x;//3.接收两个参数,返回和 (x,y) -> x + y;//4.接收一个字符串对象,并在控制台打印输出 (String s) -> System.out.println(s);//5.Java8可以自动推导参数类型,可以不用写参数类型 (s) -> System.out.println(s); //Java编译器会根据你传入的值自动推导出类型
注:Lambda表达式只能用来 简化 仅包含 一个 public方法的 接口 的创建
例:
public interface In { void func();}//lambda表达式a. In in1 = ()->{};b. In in2 = ()->System.out.println("Lambda表达式");c. In in3 = ()->{ System.out.println("Lambda表达式1"); System.out.println("lambda表达式2");}----------------------------------------------------public interface In { void func(int a);}//lambda表达式a. In in = a->System.out.println(a);b. In in = (a)->{};----------------------------------------------------public interface In { int func(int a);}//lambda表达式a. In in = a->a+1;b. In in2 = a -> { return a+1; };----------------------------------------------------new Thread(new Runnable() { @Override public void run() { //do something }}).start();//lambda表达式new Thread(()->{ //do something}).start();
Java的λ表达式只能用作赋值、传参、返回值等。
http://download.csdn.net/download/steven_sf/9997234
阅读全文
0 0
- java8之接口的默认方法和lambda表达式小结(一)
- java8 lambda表达式和接口默认方法
- java8新特性之函数式接口、lambda表达式、接口的默认方法、方法和构造函数的引用
- 一、java8的Lambda表达式
- java8之接口的默认静态方法
- Java8的lambda表达式和函数式接口
- Java8中的默认方法和Lambda的使用
- java8新特性之lambda表达式(一)
- Java8新特性小结-接口与Lambda表达式
- java8 lambda表达式之 Stream常用方法
- Java8 接口的默认方法
- Java8接口的默认方法
- Java8之默认方法和静态接口方法
- JAVA8之lambda表达式
- Java8之Lambda表达式
- Java8之lambda表达式
- java8之lambda表达式
- java8之lambda表达式
- 开发工具:Idea 字符集配置,修改 encodings.xml 文件
- leetcode4 Median of Two Sorted Arrays
- 开通博客
- Java学习笔记之集合(九):TreeMap的存储原理
- mina框架-------NioSocketAcceptor和NioSocketConnector对象
- java8之接口的默认方法和lambda表达式小结(一)
- 简单的固定定位
- 个人容易忘的知识点罗列(实时更新)
- cntlm for linux 设置
- iOS开发
- Android中判断详细的网络
- 如何减少http请求
- RecyclerView加载瀑布流,图片自适应问题
- 关于mybatis批量问题