暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java新特性解读JDK8之自定义Lambda接口编程

227decision 2020-01-05
1467

自定义Lambda接口步骤:

  1. 定义一个函数式接口,接口增加注解@FunctionalInterface,防止接口增加其他方法导致故障;

  2. 接口定义方法;

  3. 调用方法传入数据和Lambda表达式,操作数据。

代码如下:

    package com.example.lambdademo.customInterfaces;
    @FunctionalInterface
    public interface LambdaNoReturnNoParameter {
    void test();
    }


    package com.example.lambdademo.customInterfaces;
    @FunctionalInterface
    public interface LambdaNoReturnSingleParameter {
    void test(int a);
    }


    package com.example.lambdademo.customInterfaces;
    @FunctionalInterface
    public interface LambdaNoReturnMultipleParameter {
      void test(int a,int b);
    }
    package com.example.lambdademo.customInterfaces;
    @FunctionalInterface
    public interface LambdaHaveReturnNoParameter {
    int test();
    }


    package com.example.lambdademo.customInterfaces;
    @FunctionalInterface
    public interface LambdaHaveReturnSingleParameter {
    int test(int a);
    }


    package com.example.lambdademo.customInterfaces;
    @FunctionalInterface
    public interface LambdaHaveReturnMultipleParameter {
      int test(int a,int b);
    }


    package com.example.lambdademo.customInterfaces;
    /**
    * 自定义Lambda接口测试使用
    * @author thehe
    *
    */
    public class CustomInterfacesTest {

    public static void main(String[] args) {
    //无返回值无参数
    LambdaNoReturnNoParameter lambdaNoReturnNoParameter=()->{
    System.out.println("无返回值无参数");
    };
    lambdaNoReturnNoParameter.test();

    //无返回值单个参数
    LambdaNoReturnSingleParameter lambdaNoReturnSingleParameter =(int a)->{
    System.out.println("无返回值单个参数: "+a);
    };
    lambdaNoReturnSingleParameter.test(2);

    //无返回值多个参数
    LambdaNoReturnMultipleParameter lambdaNoReturnMultipleParameter=(int a,int b)->{
    System.out.println("无返回值多个参数: "+a+b);
    };
    lambdaNoReturnMultipleParameter.test(1, 2);

    //有返回值无参数
    LambdaHaveReturnNoParameter lambdaHaveReturnNoParameter=()->{
    System.out.println("有返回值无参数");
    return 6;
    };
    int test = lambdaHaveReturnNoParameter.test();
    System.out.println("有返回值无参数"+test);

    //有返回值单个参数
    LambdaHaveReturnSingleParameter lambdaHaveReturnSingleParameter=(int a)->{
    System.out.println("有返回值单个参数");
    return a;
    };
    int test2 = lambdaHaveReturnSingleParameter.test(7);
    System.out.println("有返回值单个参数"+test2);

    //有返回值多个参数
    LambdaHaveReturnMultipleParameter lambdaHaveReturnMultipleParameter=(int a,int b)->{
    System.out.println("有返回值多个参数");
    return a+b;
    };
    int test3 = lambdaHaveReturnMultipleParameter.test(8, 9);
    System.out.println("有返回值多个参数"+test3);

    //简洁写法:参数类型,大括号,return ,在此省略
    LambdaHaveReturnMultipleParameter lambdaHaveReturnMultipleParameter2=(x,y)->x+y;
    lambdaHaveReturnMultipleParameter2.test(8, 9);
        System.out.println("有返回值多个参数的简洁写法: "+test3);
      }
    }



    最后修改时间:2020-07-01 13:37:32
    文章转载自227decision,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论