zoukankan      html  css  js  c++  java
  • (3)方法引用

    首先定义一个接口

    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

  • 相关阅读:
    用ildasm和ilasm对.net下的exe程序进行破解初探
    随笔--各种概念等等
    C#高级编程学习一-----------------第五章泛型
    visual studio相关操作
    webservice开发
    delphi各种错
    android开发文章收藏
    android开发遇到的问题
    android应用开发基础知道
    数据库各种问题
  • 原文地址:https://www.cnblogs.com/zhandouBlog/p/9383229.html
Copyright © 2011-2022 走看看