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

  • 相关阅读:
    并发编程练习题
    Python GIL(Global Interpreter Lock)
    并发编程之多进程
    并发编程之协程
    并发编程之多线程
    python 闯关之路三(面向对象与网络编程)
    python笔试题(2)
    开发一个支持多用户在线的FTP程序
    黄哥漫谈Python 生成器。
    scrapy 报错 no module named win32api 的解决方案
  • 原文地址:https://www.cnblogs.com/zhandouBlog/p/9383229.html
Copyright © 2011-2022 走看看