码迷,mamicode.com
首页 > 其他好文 > 详细

(3)方法引用

时间:2018-07-28 21:52:44      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:ane   sele   x11   bsp   public   匿名内部类   java8   div   ber   

首先定义一个接口

public interface Calculation<T> {
    public T colculate(T t1, T t2);
}

这个接口只有一个方法也就是计算,下面展示三种使用这个接口的方式。

//匿名内部类
@Test
public void test() {
    Calculation<Integer> calculation = new Calculation<Integer>() {
        @Override
        public Integer colculate(Integer num1, Integer num2) {
            return num1 + num2;
        }
    };
    Integer result = calculation.colculate(12);
    System.out.println(result);
}
//lambda表达式
@Test
public void test2() {
    Calculation<Integer> calculation = (num1, num2) -> num1 + num2;
    Integer result = calculation.colculate(12);
    System.out.println(result);
}
//方法引用
@Test
public void test3(){
    Calculation<Integer> calculation = Integer::sum;
    Integer result = calculation.colculate(12);
    System.out.println(result);
}

我感觉这个很明显的看出了匿名内部类的啰嗦,所以主要看一下lambda表达式和方法引用。

他们都是把方法传给了一个对象,方法引用看起来更简洁,因为Integer::sum这个方法的具体代码就是接受两个int值,返回一个int值。

和colculate方法的入参和返回值是一样的,所以这里是可以传递这个方法进去的。

下面介绍java8支持的函数引用:

首先就是上述使用的Integer::sum,类名+双冒号+静态方法,还有对象+双冒号+实例方法,还有类名+双冒号+new

 

(3)方法引用

标签:ane   sele   x11   bsp   public   匿名内部类   java8   div   ber   

原文地址:https://www.cnblogs.com/zhandouBlog/p/9383229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!